QT中QMainWindow手动添加菜单栏以及其他控件
2016-01-04 02:01
495 查看
QT中的建立一个界面为QMainwindow的主界面,如果想在主界面中手动添加MenuBar,同时再添加别的控件时,一定要定义一个QWidget的控件,把除了MenuBar之外的控件放到QWidget中,否则绘制出来的界面中控件会覆盖已有的菜单栏。举个栗子,具体代码如下:
完成以上两步的设置,QMainWindow中的窗口的菜单栏不会被其他手动添加的控件给覆盖了
[code]void MainWindow::InitializeWindow() { //设置窗口的图标和名称 setWindowIcon(QIcon(":/icon.ico")); setWindowTitle(tr("新闻推荐系统")); //自定义QLabel控件 m_lblLeft = new QLabel(tr("<b>文章关键字列表 </b>")); m_lblRight =new QLabel(tr("<b>关键字向量 </b>")); m_lblRcmd1 = new QLabel(tr("<b>推荐结果1 </b>")); m_lblRcmd2 = new QLabel(tr("<b>推荐结果2 </b>")); //主窗口中添加一个Widget,将所有控件放入Widget,其中setCentralWidget()设置该widget为当前窗口的widget m_widget = new QWidget(); this->setCentralWidget(m_widget); //设置窗口的布局,QGridLayout中的参数分别是(控件名称,控件所在的行号,控件所在的列号) QGridLayout* gridLayout = new QGridLayout; gridLayout->addWidget(m_lblLeft,0,0); gridLayout->addWidget(m_lblRight,0,1); gridLayout->addWidget(m_lblRcmd1,2,0); gridLayout->addWidget(m_lblRcmd2,2,1); //把新建的Widget的布局设置为gridLayout m_widget->setLayout(gridLayout); }
下面是初始化窗口的代码,其中新建了一个QWidget函数,同时调用setCentralWidget(QWidget* )来实现设置了QMainWindow的CentralWidget
[code]@requires_authorization void MainWindow::InitializeWindow() { //设置窗口的图标和名称 setWindowIcon(QIcon(":/icon.ico")); setWindowTitle(tr("新闻推荐系统")); //自定义QLabel控件 m_lblLeft = new QLabel(tr("<b>文章关键字列表 </b>")); m_lblRight =new QLabel(tr("<b>关键字向量 </b>")); m_lblRcmd1 = new QLabel(tr("<b>推荐结果1 </b>")); m_lblRcmd2 = new QLabel(tr("<b>推荐结果2 </b>")); //主窗口中添加一个Widget,将所有控件放入Widget,其中setCentralWidget()设置该widget为当前窗口的widget m_widget = new QWidget(); this->setCentralWidget(m_widget); //设置窗口的布局,QGridLayout中的参数分别是(控件名称,控件所在的行号,控件所在的列号) QGridLayout* gridLayout = new QGridLayout; gridLayout->addWidget(m_lblLeft,0,0); gridLayout->addWidget(m_lblRight,0,1); gridLayout->addWidget(m_lblRcmd1,2,0); gridLayout->addWidget(m_lblRcmd2,2,1); //把新建的Widget的布局设置为gridLayout m_widget->setLayout(gridLayout); }
完成以上两步的设置,QMainWindow中的窗口的菜单栏不会被其他手动添加的控件给覆盖了
相关文章推荐
- 【傻瓜式】QT5+sql server(ODBC)创建数据源并且连接数据库
- Qt5.4.2(mingw)编译OSG 3.4
- Qt 自定义事件
- Qt与JS相互调用
- 模态与非模态的区别
- Qt视图加载表格
- HT for Web嵌入QtWebKit的client解决方式
- QT编译出错解决方法
- ubuntu qt 配置qwt
- QT 操作MySQL
- opencv+QT学习(1) -- opencv+QT在win 7下的环境搭建
- QT for IOS 点滴
- Qt XML 使用QxmlStreamReader的使用的步骤和方法
- ubuntu15.04 opencv3.1.0 qt creator环境配置
- 【原创】QT4升级到QT5
- QTableWidget详解
- tiny4412 linux+qtopia nfs网络文件系统的挂载
- Qt之界面实现技巧
- Qt 中设置窗体透明度的几种方法
- 自学QT之Qt 4迁移至Qt 5