2017年12月11日 星期一

Qt--创建主窗口MainWindow

QT --创建主窗口MainWindow

一个应用程序主窗口框架一般包含有:
1..菜单栏。最上面一栏。
2..工具栏。一般是第二栏,而且是可以移动的。
3..中心部件。用于显示主要功能。
4..Dock部件。通常称为停靠窗口,因为可以停靠在中心部件周围,相当于ps里面的工具箱
5..状态栏。在窗口最下面一栏就是状态栏。

如何使用QT创建一般形式的窗口?
步骤:
1.      首先新建一个新的QT项目,.ui文件的基类为MainWindows。
2.      建立好项目之后,进入设计模式,在主设计区中左上角的“在这里输入”修改为”文件(&F)”。如图:
其中需要注意的是:括号为英文状态下的括号,&F被称为加速键,表示在程序运行的时候可以按Alt+F激活该菜单。
3.      完成上述操作之后,点击文件,在文件里的“在这里输入”改为”新建文件夹(&N)”,得到如下的截图:
 
这个时候运行代码的结果是:
初步界面已经实现。
4.      使用资源来替换图片。
第一步,添加Qt资源文件。
 


第二步,添加资源。在项目外,新建一个Image文件夹,然后再里面添加两张图片1.jpg,2.jpg。
回到Qt Creator,然后打开刚才新建的.qrc文件,右键选择Add Existing Directory.
然后在选择框下面只选择1.jpg,2.jpg图片。如下:
确定完之后.qrc文件就会多出这些东西。
 
然后CTRL+S保存之前的操作。
第三步,使用图片。双击中间下面的对象名称进入动作编辑对话框,然后设置
 
然后选择图标右边的选择资源选择对应的图片。
如果要设置快捷键也可以在Shortcut里面设置快捷键。
最后确定保存,运行。
可以看到图标已经在上面了。

也可以使用代码来实现创建菜单:
头文件添加#include<QMenu>
  QMenu*qm=ui->menuBar->addMenu("编辑(&E)");
    //往文件这个菜单里面添加Aciton(打开文件)
    QAction*action_Open=ui->menu_F->addAction(QIcon(":/Images/ /1.jpg"),"打开文件(&O)");
    action_Open->setShortcut(QKeySequence("Ctrl+O"));//添加快键
    ui->mainToolBar->addAction(ui->action_New);//添加工具栏,新建文件
ui->mainToolBar->addAction(action_Open);//添加工具栏,打开文件

PS:这里需要十分注意的是,Qicon里面的地址需要加冒号。

最后运行的结果:
 


5.       设置信号槽。如果一个菜单点击了没有任何反应,那么这个菜单也是没有任何用处的。
这里带你如何设置槽。
先在窗口中添加一个MdiArea部件,作为响应菜单执行的载体。
然后在Action编辑器中的“新建文件”动作上右键转到槽,选择triggered()触发信号,确定之后转到该信号槽的定义处。

需要添加头文件:
#include<QTextEdit>
#include<QMdiSubWindow>
代码
void MainWindow::on_action_New_triggered()
{
    QTextEdit*edit=newQTextEdit();//新建一个TextEdit部件
    QMdiSubWindow*child=ui->mdiArea->addSubWindow(edit);
    child->setWindowTitle("新建文件");
    child->show();//非模态,可以创建N个子窗口
}

 



6.       工具箱的实现。(Dock部件)
这里调用的是QDockWidget类中的部件。

先在设计模式添加一个子菜单“显示工具箱”,以及一个Dock部件:Dock Widget.
然后单击转到槽创建triggered()的槽函数。
输入代码:
//显示工具箱
voidMainWindow::on_action_show_triggered()
{
    ui->dockWidget->show();
}
然后就可以在关闭掉工具箱的时候,按下该菜单就可以重新显示Dock。

7.       添加状态栏。
直接使用QStatusBar类提供的函数来显示状态信息。默认有三类状态栏:临时信息(显示一般信息)、正常信息(显示页数和行号)和永久信息(显示版本号或者日期)。

以上创建主窗口就到此为止。


沒有留言:

張貼留言