我是Qt开发的新手,我正在尝试制作一个简单的" Hello,World"用一个切换按钮。我有这样的事情:
使用相应的代码:
void MainWindow::on_pushButton_toggled(bool checked)
{
if(checked) {
ui->label->setText("Hello, World!");
} else {
ui->label->setText("");
}
}
我的目标是将标签的文字从空白更改为" Hello,World!"或者点击按钮反之亦然。
目前,该标签仅为空白。早期的默认文本是" TextLabel",按下按钮,它将从" TextLabel"空白,这几乎是正确的。
我尝试了on_pushButton_clicked
之类的不同选项,但无济于事。
我知道解决方案很简单 - 有人能指出我的方向吗?
答案 0 :(得分:0)
你为什么不这样做?
void MainWindow::on_pushButton_toggled(bool checked)
{
ui->label->setText(ui->label->text().isEmpty() ? "Hello, World!" : "");
}
答案 1 :(得分:0)
您需要声明您的回调方法如下:
class MainWindow : public QMainWindow
{
Q_OBJECT
bool checked;
QPushButton *my_button;
private slots:
void handleButton();
};
然后在您的Constructor
中,您需要连接Signal and Slot
,如下所示:
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
{
checked = 0;
connect(my_button, SIGNAL (released()), this, SLOT (on_pushButton_toggled()));
}
你的回电方法就是这样的。您可以在此方法中切换标记,因为每次单击此按钮都会调用SLOT
。
void MainWindow::on_pushButton_toggled()
{
checked = ~checked;
if(checked) {
ui->label->setText("Hello, World!");
} else {
ui->label->setText("");
}
}
我希望这对你有用。