QT mainwindow四件套

最近在学习QT。下面总结一下mainwindow的设置步骤。

使用的平台为vs2013+qt5.3.2+qt-vs-addin1.2.3

1)安装软件

首先安装vs2013,这个不多介绍。

然后安装qt5.3.2和addin1.2.3。并设置相关环境。详细见http://tieba.baidu.com/p/3451630520?pid=61264366864#61264366864。

2)建立qt工程项目

具体省略。主要介绍相关代码。

主要涉及4个函数

CreateActions();
CreateMenus();
CreateToolBars();
CreateStatusBar();

具体实现代码例:

//定义动作ACtion

void MainWindow::CreateActions()
{
action_new_ = new QAction(QIcon(":/MainWindow/Resources/images/new.png"), tr("&New"), this);
action_new_->setShortcut(QKeySequence::New);
action_new_->setStatusTip(tr("Create a new file"));

action_open_ = new QAction(QIcon(":/MainWindow/Resources/images/open.png"), tr("&Open..."), this);
action_open_->setShortcuts(QKeySequence::Open);
action_open_->setStatusTip(tr("Open an existing file"));
connect(action_open_, SIGNAL(triggered()), imagewidget_, SLOT(Open()));

}

代码解释:QIcon(":/MainWindow/Resources/images/new.png")是读取图片的。注意双引号中的写法。 tr("&New")注意不要忘记&。setShortcut(QKeySequence::New)是设置快捷键,括号中的表示使用windows默认的快捷键。setStatusTip(tr("Create a new file"))表示状态栏显示的内容。

//定义菜单栏Menu

void MainWindow::CreateMenus()
{
menu_file_ = menuBar()->addMenu(tr("&File"));//创建了一个菜单叫File
menu_file_->setStatusTip(tr("File menu"));//状态栏显示File menu

//下面4个为菜单File中包含的Action
menu_file_->addAction(action_new_);
menu_file_->addAction(action_open_);
menu_file_->addAction(action_save_);
menu_file_->addAction(action_saveas_);

}

//定义工具栏ToolBar

void MainWindow::CreateToolBars()
{
toolbar_file_ = addToolBar(tr("File"));//创建了一个工具栏,名称为File

//下面3个为工具栏File包含的ACtion
toolbar_file_->addAction(action_new_);
toolbar_file_->addAction(action_open_);
toolbar_file_->addAction(action_save_);

}

//激活状态栏

void MainWindow::CreateStatusBar()
{
statusBar()->showMessage(tr("Ready"));
}

3)注意事项

1、在.h文件中声明用到的变量自不用说了。

2、工具栏中添加的各种图片表示应当在*.qrc文件中设置,不然没法显示。

3、想不起来了,下次想起来在写吧。

时间: 2024-12-19 17:15:46

QT mainwindow四件套的相关文章

Qt MainWindow 背景图片

void MainWindow::paintEvent(QPaintEvent *) { qDebug() << "paintEvent"; QPainter painter(this); //上半部分背景 QPixmap banner(":/login/banner_5"); banner.setDevicePixelRatio(2.0); painter.drawPixmap(0, 0, banner); //下班部分背景 QPixmap bg(&q

Qt MainWindow中自定义函数调用MainWindow中方法

MainWindow *m;//定义全局 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { m = this; ui->setupUi(this); } void MainWindow::appendLog(QString log) { ui->textBrowser->append(log); } void onMessages(void *param2) {

研究QGIS二次开发笔记(一)

为了在QT程序中嵌入一个地图,最终选择了QGIS来干这件事.选型阶段真是呵呵.我折腾的是QGIS2.4.0. 首先,到官方网站下载安装QGIS.如果你跟我一样懒的话,可能希望下载一个已经编译好的windows版的QGIS.但是这里有个陷阱.咱们是要做二次开发的,千万不要下载安装那个看上去很美的QGIS Chugiak安装包,那里面缺lib库啊我摔!!一定要用那个在线安装下载的osgeo4w.下载选择advance install,在选择下载项时注意把libjpeg_ipp那个库取消掉,安装没有i

QT 5.1 MainWindow 与 QWebview 如何通信

解决它们之间的通信问题,需要在mainwindow中添加 ? 1 2 3 4 5 6 7 8   ui->webView->settings()->setAttribute(QWebSettings::JavascriptEnabled, true);     connect(ui->webView->page()->mainFrame(),SIGNAL(javaScriptWindowObjectCleared()),this,SLOT(addJavaScriptOb

Qt在mainwindow下代码添加控件不能显示的问题

以前在dialog或者widget下代码添加控件能显示,但是今天发现在mainwindow下居然不能显示,后来查了资料才知道,需要先定义一个widget,具体代码如下:    QWidget *center = new QWidget(this);    setCentralWidget(center);     penColorComboBox = new QComboBox;     createColorComboBox(penColorComboBox);     penColorLab

Qt无边框MainWindow如何拖动四周改变大小

原来还有winEvent(), x11Event() and macEvent() 这些东西...不过貌似还需要找更好的办法,否则就无法跨平台了. 你需要重新处理部分窗体事件,以下代码适用于Windows平台,仅供参考! bool MainWindow::winEvent(MSG *msg, long *result) { switch (msg->message) { case WM_NCHITTEST: { *result = 0; const LONG border_width = 8;

QT自定义窗口(模拟MainWindow)

在这里自定义窗口是通过继承于QFrame,内部分为上下两部分,上半部分就是标题栏,下面是窗口的具体内容.上下两部分通过布局固定位置.最后窗口的各种鼠标拖动,缩放,等操作通过添加鼠标事件来完成一个窗口的常规功能.当然,这个标题栏可以通过布局的改变把它放到任意地方. 下面是实现的代码: #pragma once #ifndef CUSTOMWIDGET_H_ #define CUSTOMWIDGET_H_ #include <QtWidgets/QFrame> class QToolButton;

3.关于QT中的MainWindow窗口,MenuBar,ToolBar,QuickTip等方面的知识点

 1 新建一个空Qt项目 编写12MainWindow.pro HEADERS += \ MyMainWindow.h \ MyView.h SOURCES += \ MyMainWindow.cpp \ MyView.cpp QT += gui widgets MyView.h #ifndef MYVIEW_H #define MYVIEW_H   #include <QWidget>   class MyView:public QWidget{     Q_OBJECT public:

Qt之Dialog\widget\ mainwindow的区别和布局管理器 &amp; 分裂器的区别

1.Dialog\widget\ mainwindow的区别 注意mainwindow和widget的区别,mainwindow都工具栏和菜单栏 Dialog and mainwinodws 都是继承与 Widget. 布局管理器 & 分裂器的区别 左边为布局管理器,右边为分裂器 布局管理器中的btn的上下宽度是不随主窗口的调整而变化的. 分裂器中的btn的上下宽度是随主窗口的调整而变化的. 各个btn的左右宽度,在这2中方式中都会变化.