UI = Unit Interval,单位时间间隔,通常在通信信号的抖动测试中用来表示抖动幅度的单位,表示一个等步信号的两个相邻的有效瞬时之间的标称时间差 。UI = Univ of Iowa,爱荷州大学(美国) 。UI = Unlock Instruction,开锁指令 。UI = Urgent Interrupt,紧急中断 。UI = Universal Input,通用输入 。
5.如何使用ui文件这两天跟着班级辅导,总有学生感到很疑惑,用ui designer设计出来的ui文件是如何使用的,下面我从一个例子来说明下,希望能对有这样疑惑的同学有帮助 。
事实上,现在有了继承设计工具qtcreator,作为开发者再也不用考虑这个问题,因为当你用qtcreator创建一个工程的时候,qtcreator提供的框架已经替我们完成了这个任务 。咱们先从这个程序开始看:新建一个工程,在这个工程中用ui designer来设计了这样的一个界面这是我按ctrl+alt+r运行出来的,如何使这个利用ui designer设计出来的ui文件能运行起来就是我们这篇文章要议论的内容 。
先来看看qtcreator提供的默认框架是如何实现的 。要研究qtcreator怎么实现,就得先看dialog.h这个文件 。
#ifndef DIALOG_H #define DIALOG_H#include namespace Ui { class Dialog; }class Dialog : public QDialog { Q_OBJECT public: Dialog(QWidget *parent = 0); ~Dialog();protected: void changeEvent(QEvent *e);private: Ui::Dialog *ui;private slots: void on_pushButton_clicked(); };#endif // DIALOG_H观察不难得出,在上文中我用红色包含的就是实现这个程序的关键 。它声明一个类,将设计出来的ui界面作为该类的一个子对象,在其构造函数中,先完成对子对象的构造,再使用子对象ui调用其setupUi(this)函数实现ui的现实 。
Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); }看完上面的代码,我们来分析下到底为什么要这样来使用ui文件 。在没有qtcreator之前,给了我们一个ui文件,该如何调用?针对于ui文件,不知道大家知不知道uic这个工具,这是qt继承的一个工具,它可以利用ui生产.h文件 。
uic dialog.ui –o tt.h就生产了下面的文件:/******************************************************************************** ** Form generated from reading UI file 'dialog.ui' ** ** Created: Sun May 9 17:29:42 2010 ** by: Qt User Interface Compiler version 4.6.2 ** ** WARNING! All changes made in this file will be lost when recompiling UI file! ********************************************************************************/#ifndef TT_H #define TT_H#include #include #include #include #include #include #include #include QT_BEGIN_NAMESPACEclass Ui_Dialog { public: QLabel *label; QPushButton *pushButton; void setupUi(QDialog *Dialog) { if (Dialog->objectName().isEmpty()) Dialog->setObjectName(QString::fromUtf8("Dialog")); Dialog->resize(115, 148); label = new QLabel(Dialog); label->setObjectName(QString::fromUtf8("label")); label->setGeometry(QRect(10, 30, 91, 21)); QFont font; font.setPointSize(12); font.setBold(true); font.setWeight(75); label->setFont(font); pushButton = new QPushButton(Dialog); pushButton->setObjectName(QString::fromUtf8("pushButton")); pushButton->setGeometry(QRect(20, 80, 75, 23)); retranslateUi(Dialog); QMetaObject::connectSlotsByName(Dialog); } // setupUi void retranslateUi(QDialog *Dialog) { Dialog->setWindowTitle(QApplication::translate("Dialog", "Dialog", 0, QApplication::UnicodeUTF8)); label->setText(QApplication::translate("Dialog", "hello,wang", 0, QApplication::UnicodeUTF8)); pushButton->setText(QApplication::translate("Dialog", "close", 0, QApplication::UnicodeUTF8)); } // retranslateUi};namespace Ui { class Dialog: public Ui_Dialog {}; } // namespace UiQT_END_NAMESPACE#endif // TT_H通过观察我们会发现uic自动将我们设计的ui文件,生成了一个类,在此例中为class Ui_Dialog 。事实上也是这样,uic会自动会利用设计好的ui生成一个包含类Ui_**的ui_**.h文件 。
- 油菜花是什么意思 油菜花是什么意思网络用语
- 电脑没声音怎么弄 电脑没声音怎么办win7
- cf怎么截图 CF游戏中怎么截图
- qq空间访问权限 手机怎么设置qq空间访问权限
- 鱼肉馅饺子怎么做 鱼肉馅饺子做法视频
- 怎么开葡萄酒 怎么开葡萄酒木塞小妙招
- 洗龙沟是什么意思 洗龙沟是什么意思衣机里面太脏了怎么办
- wow使命召唤怎么做 使命召唤怎么弄
- 文件隐藏了怎么恢复 windows文件隐藏了怎么恢复
- 英雄联盟查战斗力 英雄联盟怎么查战斗力