qt窗口布局及自定义类.ppt

上传人:w****2 文档编号:16566432 上传时间:2020-10-13 格式:PPT 页数:16 大小:209KB
返回 下载 相关 举报
qt窗口布局及自定义类.ppt_第1页
第1页 / 共16页
qt窗口布局及自定义类.ppt_第2页
第2页 / 共16页
qt窗口布局及自定义类.ppt_第3页
第3页 / 共16页
点击查看更多>>
资源描述
qt窗口布局及自定义类 说明 以下将通过一个例子讲解自定义类的 qt 程序设计的主要流程 要设计的界面 通过两个文件: finddialog.h 和 finddialog.cpp来实 现,即定义一个类 finddialog.h (1) #ifndef FINDDIALOG_H #define FINDDIALOG_H #include class QCheckBox; class QLabel; class QLineEdit; class QPushButton; class FindDialog : public QDialog Q_OBJECT public: FindDialog(QWidget *parent = 0, const char *name = 0); signals: void findNext(const QString void findPrev(const QString private slots: void findClicked(); void enableFindButton(const QString private: QLabel *label; QLineEdit *lineEdit; QCheckBox *caseCheckBox; QCheckBox *backwardCheckBox; QPushButton *findButton; QPushButton *closeButton; ; #endif finddialog.h(2) #ifndef FINDDIALOG_H #define FINDDIALOG_H #include class QCheckBox; class QLabel; class QLineEdit; class QPushButton; finddialog.h(3) class FindDialog : public QDialog Q_OBJECT public: FindDialog(QWidget *parent = 0, const char *name = 0); signals: void findNext(const QString void findPrev(const QString private slots: void findClicked(); void enableFindButton(const QString finddialog.h (4) private: QLabel *label; QLineEdit *lineEdit; QCheckBox *caseCheckBox; QCheckBox *backwardCheckBox; QPushButton *findButton; QPushButton *closeButton; ; #endif finddialog.cpp (1) #include #include #include #include #include #include finddialog.h finddialog.cpp (2) FindDialog:FindDialog(QWidget *parent, const char *name) : QDialog(parent, name) setCaption(tr(Find); label = new QLabel(tr(Find lineEdit = new QLineEdit(this); label-setBuddy(lineEdit); caseCheckBox = new QCheckBox(tr(Match backwardCheckBox = new QCheckBox(tr(Search findButton = new QPushButton(tr( findButton-setDefault(true); findButton-setEnabled(false); closeButton = new QPushButton(tr(Close), this); finddialog.cpp (3) connect(lineEdit, SIGNAL(textChanged(const QString connect(findButton, SIGNAL(clicked(), this, SLOT(findClicked(); connect(closeButton, SIGNAL(clicked(), this, SLOT(close(); finddialog.cpp (4) QHBoxLayout *topLeftLayout = new QHBoxLayout; topLeftLayout-addWidget(label); topLeftLayout-addWidget(lineEdit); QVBoxLayout *leftLayout = new QVBoxLayout; leftLayout-addLayout(topLeftLayout); leftLayout-addWidget(caseCheckBox); leftLayout-addWidget(backwardCheckBox); QVBoxLayout *rightLayout = new QVBoxLayout; rightLayout-addWidget(findButton); rightLayout-addWidget(closeButton); rightLayout-addStretch(1); QHBoxLayout *mainLayout = new QHBoxLayout(this); mainLayout-setMargin(30); mainLayout-setSpacing(6); mainLayout-addLayout(leftLayout); mainLayout-addLayout(rightLayout); 注意何时调用 addWidget, 何时调用 addLayout 总布局 需要 this 窗口布局 QHBoxLayout QVBoxLayout QGridLayout 窗口布局 finddialog.cpp (5) void FindDialog:findClicked() QString text = lineEdit-text(); bool caseSensitive = caseCheckBox-isOn(); if (backwardCheckBox-isOn() emit findPrev(text, caseSensitive); else emit findNext(text, caseSensitive); void FindDialog:enableFindButton(const QString 主函数 main.cpp #include #include finddialog.h int main(int argc, char *argv) QApplication app(argc, argv); FindDialog *dialog = new FindDialog; app.setMainWidget(dialog); dialog-show(); return app.exec(); 多窗口调用 以前面的例子为例讲解多程序调用的方法: 1 将 find按钮名称改为 clock按钮,将 ././ qt-embedded-free- 3.1.1/examples/aclock中的 aclock.cpp和 aclock.h拷贝到当前目录 2 在 finddialog.h里加上 #includeaclock.h class AnalogClock; 3 将 finddialog.cpp文件的 findClicked函数,改为: void FindDialog:findClicked() AnalogClock *clock=new AnalogClock; clock-show(); 这样,用户点击 clock按钮的时候就可以调出 clock界面了。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!