在Qt中Dialog经常会被使用到
经常需要写QDialog的子类
不使用ui设计师,仅使用代码写Dialog需要注意的地方:
不需要将所有的部件都写成成员变量
例如,Label之类的仅仅在构造函数中定义一下,并且除了显示没有其他功能,在构造函数中直接new比较好
而Button类的组件需要触发Dialog的槽函数,但是也可以在构造函数直接new出来,然后再构造函数中进行connect(button1,SIGNAL(clicked()),this,SLOT(button1Clicked()));
而像LineEdit之类的组件最好,在类中提前声明一个指针作为Dialog的成员变量,因为LineEdit.text()可能在除构造函数的其他成员函数中使用。
点击OK按键后,利用槽函数去直接调用Dialog::accept();LineEdit中的文体不一定需要在该类中的槽函数中处理,可以定义成员函数访问这些文本,在Dialog close()后,Dialog并不会释放掉,可以利用调用者处理LineEdit中的文本。
多使用auto
例如 QLabel *label1 = new QLable(“hello”);
可以写成 auto label = new Qlabel(“hello”);
成员变量QLineEdit *lineEdit1;尽量写到构造列表中
Dialog::Dialog(QWidget *parent)
: QDialog(parent),
lineEdit1(new QLineEdit)
{…}