在实际的应用程序中,控制扩展对话框的按钮通常会在只显示了基本对话框时显示为Advanced>>,而在显示了扩展对话框时才显示为Advanced<<。这在Qt 中非常容易实现,只需在单击这个按钮时调用QPushButton 的setText()函数即可。
这个是《零基础学Qt4编程》第七章的一句话。
网友同问:http://tieba.baidu.com/p/1289407174
实现方法:
首先在头文件中自定义一个槽;
class ExtensionDlg:public QDialog,public Ui::Dialog { Q_OBJECT public: ExtensionDlg(QWidget *parent = 0); private slots: void checkStaus();//check if the detailGroupBox is Hidden or not };
然后在实现文件中,构造函数里加入:
ExtensionDlg::ExtensionDlg(QWidget *parent) :QDialog(parent) { setupUi(this); this->extensionGroupBox->hide(); this->detailButton->setText(tr(">>")); connect(this->detailButton, SIGNAL(clicked()), this, SLOT(checkStaus())); mainVerticalLayout->setSizeConstraint(QLayout::SetFixedSize); }
最后实现自己的槽:
void ExtensionDlg::checkStaus() { if (this->extensionGroupBox->isHidden()) { this->detailButton->setText(tr(">>")); } else { this->detailButton->setText(tr("<<")); } }