日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt学习三 - 菜单栏、工具栏、状态栏

發(fā)布時(shí)間:2023/12/31 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt学习三 - 菜单栏、工具栏、状态栏 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow) {ui->setupUi(this);/** QAction是Qt中用于添加動(dòng)作的類,* 可以將它添加在菜單,作為一個(gè)菜單項(xiàng),也可以添加到工具欄,作為一個(gè)工具欄按鈕* 其中參數(shù)一是設(shè)置該操作按鈕的圖標(biāo),":/images/icon"是資源文件的路徑* 參數(shù)二中"&"號(hào)代表設(shè)置快捷鍵為"Alt+o"*/QAction *open = new QAction(QIcon(":/images/icon"),"Open(&O)",this);/*** 設(shè)置快捷鍵為"Ctrl+o"* 這里使用QKeySequence類是為了可以跨平臺(tái),例如pc和mac下的鍵盤不一樣,Qt可以根據(jù)平臺(tái)不同設(shè)置相應(yīng)的快捷鍵* 該類中為我們定義了很多內(nèi)置的快捷鍵,可以直接使用,例如下面注釋的一行。* 也可以自己創(chuàng)建一個(gè)QKeySequence類,傳入我們想要設(shè)置的快捷鍵。*///open->setShortcut(QKeySequence(QKeySequence::Open));open->setShortcut(QKeySequence("Ctrl+O"));//設(shè)置工具提示open->setToolTip("open file");//狀態(tài)欄提示open->setStatusTip("open existing file");//在菜單欄中添加一個(gè)菜單。因?yàn)镼t界面工程,默認(rèn)自帶了菜單欄、工具欄和狀態(tài)欄,所以我們可以直接使用ui->menuBar來調(diào)用QMenu *file = ui->menuBar->addMenu("File(&F)");//將open動(dòng)作作為一個(gè)菜單項(xiàng)添加到file菜單中file->addAction(open);//添加到工具欄ui->mainToolBar->addAction(open);//創(chuàng)建狀態(tài)欄,Qt界面工程已經(jīng)創(chuàng)建//statusBar(); }

狀態(tài)欄可以顯示臨時(shí)信息、永久信息和其他組件,例如:

statusBar()->showMessage("歡迎!");

運(yùn)行結(jié)果如下:

還可以設(shè)定顯示時(shí)間,毫秒為單位,例如:

statusBar()->showMessage("歡迎!",2000);

這樣信息會(huì)在2秒后消失。

下面在狀態(tài)欄中顯示一些組件,聲明一個(gè)私有變量

namespace Ui { class MainWindow; }class MainWindow : public QMainWindow {Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();private:Ui::MainWindow *ui;QLabel *statusLabel; };

然后在構(gòu)造函數(shù)中添加,如下代碼

statusLabel = new QLabel(this);statusLabel->setFrameShape(QFrame::WinPanel);statusLabel->setFrameShadow(QFrame::Sunken);ui->statusBar->addWidget(statusLabel);statusLabel->setText("歡迎!!!");

運(yùn)行如下:

這樣就可以在需要顯示信息的時(shí)候,調(diào)用statusLabel->setText()來設(shè)置了。

狀態(tài)欄顯示永久信息需要使用addPermanentWdget函數(shù)來添加一個(gè)可以顯示信息的組建,它會(huì)顯示在狀態(tài)欄的右側(cè),不會(huì)被臨時(shí)信息所遮蓋。

QLabel *permanent = new QLabel;permanent->setFrameStyle(QFrame::Box | QFrame::Sunken);permanent->setText(tr("<a href=\"http://www.baidu.com\">baidu.com</a>"));permanent->setTextFormat(Qt::RichText); //設(shè)置為超文本permanent->setOpenExternalLinks(true); //開啟自動(dòng)打開超鏈接ui->statusBar->addPermanentWidget(permanent);

運(yùn)行結(jié)果如下:

在Qt中,mainwindow類提供了menuBar()函數(shù)來返回一個(gè)菜單欄(QMenuBar),如果沒有菜單欄則會(huì)新建一個(gè);提供了addToolBar()函數(shù)來新加一個(gè)工具欄(QToolBar);以及返回狀態(tài)欄(QStatusBar)的statusBar()函數(shù)。上面的代碼沒有使用這三個(gè)函數(shù),是因?yàn)镼t界面工程默認(rèn)已經(jīng)創(chuàng)建好了。這三個(gè)函數(shù)僅在mainwindow類中存在,QDialog和QWidget等其他類中都沒有提供這三個(gè)函數(shù)。那么如果我們需要在QDialog或者QWidget類中使用菜單欄、工具欄和狀態(tài)欄時(shí)怎么辦?QMenuBar,QToolBar,QStatusBar都繼承自QWidget,所以我們可以像使用其他QWidget子類那樣進(jìn)行操作。例如:

QMenuBar *menuBar = new QMenuBar(this);QMenu *menu = menuBar->addMenu("&File");QAction *open = new QAction("&Open1",this);open->setStatusTip("open exsiting file");menu->addAction(open);

?

轉(zhuǎn)載于:https://www.cnblogs.com/wangcb/p/6665822.html

總結(jié)

以上是生活随笔為你收集整理的Qt学习三 - 菜单栏、工具栏、状态栏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。