[Qt]创建主窗口


在Windows下,我们经常会用到一些应用程序,比如IE、VS等,这些应用程序的主窗口界面都具有菜单、工具栏、上下文菜单、状态栏等部件,Qt为实现主窗口,提供了一些现有的类和接口,这里打算大致介绍一下:


关于QMainWindow

是QWidget的子类,具有QWidget的很多功能,比如setWindowIcon等,也另外单独提供了一些接口,比如设置中央窗口部件的setCentralWidget

我们实现主窗口时,都会继承自QMainWindow,比如:
class TestWindow:public QMainWindow
{
	Q_OBJECT
public:
	TestWindow(QWidget *parent = NULL);

private:
	QMenu *m_pFileMenu;
	QToolBar *m_pFileToolBar;
	QAction *m_pOpenAction;
	QTextEdit *m_pTextEdit;

	private slots:
		void open();

};

设置中央窗口部件

比如我这里设置QTextEdit为中央窗口部件
m_pTextEdit = new QTextEdit("xxx");
setCentralWidget(m_pTextEdit);  //设置中央窗口部件

动作

动作可以加入到菜单、工具栏和上下文菜单中,比如我们经常使用的粘贴、复制等
我这里简单定义一个打开动作,然后将其加入到这些上述的这些菜单中去:
m_pOpenAction = new QAction("&Open",this);
m_pOpenAction->setIcon(QIcon(":/image/open"));
m_pOpenAction->setStatusTip("open action");
m_pOpenAction->setShortcut(QKeySequence::Open);


这里只是简单定义了一个动作,并没有实际行为,这里将此动作连接到自动以的open槽:

connect(m_pOpenAction,SIGNAL(triggered()),this,SLOT(open()));

void TestWindow::open()
{
	QFileDialog::getOpenFileName(this,"open file",".","All file(*.*)");
}


菜单

新建一个菜单,并将前面定义的打开动作添加进来:
m_pFileMenu = menuBar()->addMenu("&File");
m_pFileMenu->addAction(m_pOpenAction);

工具栏

使用addToolBar接口可以添加一个工具项,这里加打开动作添加进来
m_pFileToolBar = addToolBar("&File");
m_pFileToolBar->addAction(m_pOpenAction);

上下文菜单
前面设置了QTextEdit为主窗口的中央窗口部件,其实QTextEdit自带有上下文菜单,这里为了演示,不使用自带的,而是用自定义的打开动作:
//为了演示,这里不使用QTextEdit默认的上下文菜单
m_pTextEdit->addAction(m_pOpenAction);
m_pTextEdit->setContextMenuPolicy(Qt::ActionsContextMenu);

状态栏

状态栏比较简单,第一次调用statusBar()时,会创建状态栏
statusBar()->showMessage("status bar",3000);

也可以在状态栏上添加自定义的窗口部件,比如QLabel等,这个比较简单,直接看接口就行,就不再做介绍了


运行一下






  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值