Qt学习笔记2——菜单栏、工具栏和状态栏

学习自:https://www.devbean.net/2012/08/qt-study-road-2-catelog/
记录学习笔记仅供自己学习使用,如有侵权,请联系作者删除。

1.主窗口QMainWindow

Qt 将用户与界面进行交互的元素抽象为一种“动作”,使用QAction类类表示。
QAction可以添加到菜单栏、工具栏上。

在实际开发过程中,QMainWindow通常只作为“主窗口”,对话框窗口则更多地使用QDialog类。我们会在后面看到,QDialog类会缺少一些QMainWindow类提供方便的函数,比如menuBar()以及toolBar()。

如下“添加动作”代码片段:

openAction = new QAction(QIcon(":/images/doc-open"), tr("&Open..."), this);
openAction->setShortcuts(QKeySequence::Open);
openAction->setStatusTip(tr("Open an existing file"));
connect(openAction, &QAction::triggered, this, MainWindow::open);

QMenu *file = menuBar()->addMenu(tr("&File"));		//直接使用menuBar()函数的返回值
file->addAction(openAction);

QToolBar *toolBar = addToolBar(tr("&File"));
toolBar->addAction(openAction);

statusBar();

menuBar()函数: Qt 为我们创建了一个菜单栏。menuBar()是QMainWindow提供的函数,因此你是不会在QWidget或者QDialog中找到它的。这个函数会返回窗口的菜单栏,如果没有菜单栏则会新创建一个。 这也就解释了,为什么我们可以直接使用menuBar()函数的返回值,毕竟我们并没有创建一个菜单栏对象啊!原来,这就是menuBar()为我们创建好并且返回了的。

QMenuBar类: 菜单类,代表的是窗口最上方的一条菜单栏。我们使用其addMenu()函数为其添加菜单。尽管我们只是提供了一个字符串作为参数,但是 Qt 为将其作为新创建的菜单的文本显示出来。 & 符号,表示这可以为菜单创建一个快捷键。 当我们创建出来了菜单对象时,就可以把QAction添加到这个菜单上面,也就是addAction()函数的作用。

QToolBar类就是工具栏。我们使用的是addToolBar()函数添加新的工具栏。为什么前面一个是menuBar()而现在的是addToolBar()呢?因为一个窗口只有一个菜单栏,但是却可能有多个工具栏。 工具栏可以设置成固定的、浮动的等等。

QAction::setStatusTip()函数: 设置该动作在状态栏上的提示文本。类似前面的QMainWindow::menuBar()函数,QMainWindow有一个statusBar()函数,用于添加一个状态栏。

QStatusBar类: QMainWindow::statusBar()函数会返回一个QStatusBar对象,如果没有则先创建再返回。QStatusBar类继承了QWidget类, 因此,我们可以将其它任意QWidget子类添加到状态栏,从而实现类似 Photoshop 窗口底部那种有比例显示、有网格开关的复杂状态栏。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 下面是一个使用 Qt 和 C++ 编写带菜单栏界面的示例代码: ``` #include <QApplication> #include <QMainWindow> #include <QMenuBar> #include <QMenu> #include <QAction> int main(int argc, char *argv[]) { QApplication a(argc, argv); QMainWindow window; QMenuBar *menuBar = window.menuBar(); QMenu *fileMenu = menuBar->addMenu("文件"); QAction *openAction = fileMenu->addAction("打开"); window.show(); return a.exec(); } ``` 该代码创建了一个带菜单栏的主窗口,并在菜单栏中添加了一个名为“文件”的菜单,该菜单中包含一个名为“打开”的操作。 ### 回答2: 要编写带菜单栏的界面代码,我们可以使用Qt和C++进行开发。 首先,我们需要创建一个Qt应用程序项目,并打开Qt的集成开发环境。在Qt的主界面中,选择"新建项目",然后选择"Qt Widgets应用程序",输入项目的名称,并选择所需的配置和路径。 在项目中,我们需要创建一个新的主窗口类。首先,我们需要包含所需的头文件,如QMainWindow和QMenuBar。然后,我们需要创建一个继承自QMainWindow的新的类,我们可以将其命名为MainWindow。在MainWindow类的构造函数中,我们需要设置窗口的标题和大小,并创建一个菜单栏。 为了创建菜单栏,我们需要创建一个QMenuBar对象,并将其设置为MainWindow的菜单栏。然后,我们可以使用addMenu方法来添加菜单。每个菜单可以使用QMenu类来创建。在每个菜单中,我们可以使用addAction方法来添加动作。每个动作都可以使用QAction类来创建。 在每个动作中,我们可以设置动作的名称和快捷键,还可以连接到一个槽函数。槽函数可以是MainWindow类中的一个公共槽函数,也可以是其他类中的槽函数。 在MainWindow类中,我们可以添加其他所需的功能,如按钮、文本框等。我们可以使用Qt提供的各种控件类来创建这些功能。 最后,我们需要在main函数中创建一个MainWindow对象,并显示窗口。我们可以使用show方法来显示窗口,并使用exec方法进入Qt的主事件循环。 总结来说,使用Qt和C++编写带菜单栏的界面代码,我们需要创建一个继承自QMainWindow的主窗口类,并使用QMenuBar、QMenu和QAction来创建菜单栏和菜单项。然后,我们可以在菜单项上设置动作和槽函数。最后,我们需要在main函数中创建窗口对象,并显示窗口。以上是简要的代码框架,具体的实现可能需要更多的代码和细节。 ### 回答3: Qt是一款跨平台的框架,可以用来开发图形化界面。而C++是一种编程语言,也可以用来编写图形界面的代码。 要编写带菜单栏的界面代码,首先需要创建一个窗口。可以使用Qt的QMainWindow类来创建主窗口。然后,可以使用QMenuBar类来添加一个菜单栏。以下是一个示例代码: ```cpp #include <QtWidgets> int main(int argc, char *argv[]) { QApplication app(argc, argv); QMainWindow window; window.setWindowTitle("带菜单栏的界面"); QMenuBar* menuBar = window.menuBar(); QMenu* fileMenu = menuBar->addMenu("文件"); QAction* openAction = fileMenu->addAction("打开"); QAction* saveAction = fileMenu->addAction("保存"); QAction* exitAction = fileMenu->addAction("退出"); QObject::connect(exitAction, &QAction::triggered, &app, &QApplication::quit); window.show(); return app.exec(); } ``` 以上代码首先创建了一个QMainWindow类的实例,然后调用setWindowTitle方法设置了窗口的标题。 接下来,在窗口的菜单栏上添加了一个名为"文件"的菜单,然后在该菜单上添加了"打开"、"保存"和"退出"三个动作。 最后使用连接(connect)的方式,将退出动作的触发(triggered)信号连接到QApplication实例的quit()方法上,这样当用户点击退出动作时,应用程序会退出。 最后,通过调用show方法显示窗口,并通过调用app.exec()方法来启动应用程序的事件循环。 以上就是一个简单的Qt和C++编写带菜单栏的界面代码的示例。在实际的应用中,还可以添加更多的菜单和动作,并根据需要进行逻辑处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值