3.2.1 使用设计器生成的类作为辅助类
如果你只要显示一次Qt设计器创建的用户界面,在它初始化完成后不需要再次接触对应的对象,那么合适的方法是,直接实例化生成的类,并使用setupUi()将这个实例绑定到先前创建的窗口部件上。这个方法将.ui文件中描述的GUI元素安排在窗口部件上。并通过在Qt设计器中指定的布局锚定它们。
我们将以Qt设计器生成的ByteConverterDialog类为例演示这个方法:
// simple/main.cpp
#include <QtGui>
#include "ui_byteconverterdialog.h"
int main(int argc, char * argv[])
{
QApplication app(argc, argv);
QDialog dlg;
Ui::ByteConverterDialog ui;
ui.setupUi(&dlg);
dlg.setAttribute(Qt::WA_QuitOnClose);
dlg.show();
return app.exec();
}
然而,在我们的例子中,上面展示的方法有一个问题:我们不能连接退出按钮的clicked()信号和对话框的accept()槽(这是为什么?),而且虽然我们可以将binChanged(),hexChanged()和binChanged()连接至各个QTextEdit部件的textChanged()信号,却无法在槽中访问指向任何uic生成的部件的指针。