




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
此例程主要展示用代码方式创建控件并用Layout管理类对其进行布局;例程来自Qt5.2,如过是默认安装,代码位于:C:QtQt5.2.05.2.0mingw48_32exampleswidgetslayoutsbasiclayouts涉及类:QDialog QPushbotton QGroupBox QLabel QLineEdit QComboBox QTextEdit QHBoxLayout QVBoxLayout QFormLayout QGridLayout QMenu QMenuBarmain.cpp#include #include dialog.hint main(int argc, char *argv) QApplication app(argc, argv); Dialog dialog; dialog.show(); return app.exec();dialog.h#ifndef DIALOG_H#define DIALOG_H#include class QAction;class QDialogButtonBox;class QGroupBox;class QLabel;class QLineEdit;class QMenu;class QMenuBar;class QPushButton;class QTextEdit;class Dialog : public QDialog Q_OBJECTpublic: Dialog();private: void createMenu(); void createHorizontalGroupBox(); void createGridGroupBox(); void createFormGroupBox(); enum NumGridRows = 3, NumButtons = 4 ; QMenuBar *menuBar; QGroupBox *horizontalGroupBox; QGroupBox *gridGroupBox; QGroupBox *formGroupBox; QTextEdit *smallEditor; QTextEdit *bigEditor; QLabel *labelsNumGridRows; QLineEdit *lineEditsNumGridRows; QPushButton *buttonsNumButtons; QDialogButtonBox *buttonBox; QMenu *fileMenu; QAction *exitAction;#endif / DIALOG_Hdialog.cpp#include #include dialog.hDialog:Dialog() createMenu(); /创键菜单 createHorizontalGroupBox();/创建第一组控件 createGridGroupBox(); /创建第二组控件 createFormGroupBox(); /创建第三组控件 bigEditor = new QTextEdit; /创建一个独立的文本编辑框 bigEditor-setPlainText(tr(This widget takes up all the remaining space in the top-level layout.); /创建对话框按钮组 buttonBox = new QDialogButtonBox(QDialogButtonBox:Ok | QDialogButtonBox:Cancel); connect(buttonBox, SIGNAL(accepted(), this, SLOT(accept(); /连接按钮信号 connect(buttonBox, SIGNAL(rejected(), this, SLOT(reject(); QVBoxLayout *mainLayout = new QVBoxLayout; /创建垂直布局对象 mainLayout-setMenuBar(menuBar); /加入菜单栏 mainLayout-addWidget(horizontalGroupBox); /加入第一组控件 mainLayout-addWidget(gridGroupBox); /加入第二组控件 mainLayout-addWidget(formGroupBox); /加入第三组控件 mainLayout-addWidget(bigEditor); /加入文本编辑框 mainLayout-addWidget(buttonBox); /加入按钮 setLayout(mainLayout); /布局加入app对象 setWindowTitle(tr(Basic Layouts); /设置窗口标题/创建菜单栏void Dialog:createMenu() menuBar = new QMenuBar; /Dialog类没有菜单栏,所以创建一个 fileMenu = new QMenu(tr(&File), this); /创建一个菜单 exitAction = fileMenu-addAction(tr(E&xit);/添加一个菜单选项 menuBar-addMenu(fileMenu); /菜单加入菜单栏里 connect(exitAction, SIGNAL(triggered(), this, SLOT(accept();/连接菜单信号/加入第一组控件void Dialog:createHorizontalGroupBox() horizontalGroupBox = new QGroupBox(tr(Horizontal layout); /创建组控件 QHBoxLayout *layout = new QHBoxLayout; /创建水平布局对象 for (int i = 0; i addWidget(buttonsi); /加入布局 horizontalGroupBox-setLayout(layout); /将布局好的按钮添加套组控件里/加入第二组控件void Dialog:createGridGroupBox() gridGroupBox = new QGroupBox(tr(Grid layout); /创建组控件 QGridLayout *layout = new QGridLayout; /创建网格布局对象 for (int i = 0; i addWidget(labelsi, i + 1, 0); /将建标签控件放在i+1行,0列位置 layout-addWidget(lineEditsi, i + 1, 1); /将建标编辑框控件放在i+1行,1列位置 smallEditor = new QTextEdit; /创建一个文本编辑控件 smallEditor-setPlainText(tr(This widget takes up about two thirds of the grid layout.); layout-addWidget(smallEditor, 0, 2, 4, 1); /将文本编辑控件放在0行,2列位置,行跨度为4行,列跨读为1列 layout-setColumnStretch(1, 10);/将第1列的控件(行编辑框控件)拉伸系数为10 layout-setColumnStretch(2, 20);/将第2列的控件(文本编辑控件)拉伸系数为20 gridGroupBox-setLayout(layout);/加入第三组控件void Dialog:createFormGroupBox() formGroupBox = new QGroupBox(tr(Form layout);/创建组控件 QFormLayout *layout = new QFormLayout; /创建表格式布局对象 layout-addRow(new QLabel(tr(Line 1:), new QLineEdit); /添加第一个标签和行编
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年回原籍的协议书
- 2025年葡萄棚转让协议书
- 2025年签约礼仪人员协议书
- 农业社区合作促进项目协议
- 2025年软件测试工程师面试模拟题及应对策略指南
- 2025年汽车减产协议达成协议书
- 2025年新面店出租转让协议书
- 2025年车位选位协议书
- (2025年标准)猪场尿液使用协议书
- (2025年标准)监管学生协议书
- 2025-2030矿山机械行业应收账款管理优化与现金流改善策略
- 2025-2026秋季学年第一学期教导处工作安排表
- 2025山东菏泽郓城县人民医院招聘合同制护理人员60人笔试备考试题及答案解析
- 2025年残疾人专职委员考试题库及答案
- 舆情安全管理办法
- 2025个人洗护市场趋势洞察报告-魔镜洞察
- 厨房4D管理课件下载
- 心脏起搏器植入术超声评估要点
- 外聘律师管理办法范本
- 2025至2030临床前CRO治疗行业发展趋势分析与未来投资战略咨询研究报告
- 酒精戒断综合症治疗方案讲课件
评论
0/150
提交评论