Qt学习三 - 菜单栏、工具栏、状态栏
狀態欄可以顯示臨時信息、永久信息和其他組件,例如:
statusBar()->showMessage("歡迎!");運行結果如下:
還可以設定顯示時間,毫秒為單位,例如:
statusBar()->showMessage("歡迎!",2000);這樣信息會在2秒后消失。
下面在狀態欄中顯示一些組件,聲明一個私有變量
namespace Ui { class MainWindow; }class MainWindow : public QMainWindow {Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();private:Ui::MainWindow *ui;QLabel *statusLabel; };然后在構造函數中添加,如下代碼
statusLabel = new QLabel(this);statusLabel->setFrameShape(QFrame::WinPanel);statusLabel->setFrameShadow(QFrame::Sunken);ui->statusBar->addWidget(statusLabel);statusLabel->setText("歡迎!!!");運行如下:
這樣就可以在需要顯示信息的時候,調用statusLabel->setText()來設置了。
狀態欄顯示永久信息需要使用addPermanentWdget函數來添加一個可以顯示信息的組建,它會顯示在狀態欄的右側,不會被臨時信息所遮蓋。
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); //設置為超文本permanent->setOpenExternalLinks(true); //開啟自動打開超鏈接ui->statusBar->addPermanentWidget(permanent);運行結果如下:
在Qt中,mainwindow類提供了menuBar()函數來返回一個菜單欄(QMenuBar),如果沒有菜單欄則會新建一個;提供了addToolBar()函數來新加一個工具欄(QToolBar);以及返回狀態欄(QStatusBar)的statusBar()函數。上面的代碼沒有使用這三個函數,是因為Qt界面工程默認已經創建好了。這三個函數僅在mainwindow類中存在,QDialog和QWidget等其他類中都沒有提供這三個函數。那么如果我們需要在QDialog或者QWidget類中使用菜單欄、工具欄和狀態欄時怎么辦?QMenuBar,QToolBar,QStatusBar都繼承自QWidget,所以我們可以像使用其他QWidget子類那樣進行操作。例如:
QMenuBar *menuBar = new QMenuBar(this);QMenu *menu = menuBar->addMenu("&File");QAction *open = new QAction("&Open1",this);open->setStatusTip("open exsiting file");menu->addAction(open);?
轉載于:https://www.cnblogs.com/wangcb/p/6665822.html
總結
以上是生活随笔為你收集整理的Qt学习三 - 菜单栏、工具栏、状态栏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 盒马app如何绑定支付宝付款(黑客是如何
- 下一篇: testflight怎么下载app(苹果