MainWindow 菜单栏,工具栏,中心部件

菜单栏

QMenuBar (QMenu(QAction))
即QMenuBar中存放QMenu,QMenu中存放Action列表
QAction需要槽函数,triggered()发出信号
清空:clear(),removeAction()

ui编码

QMenu * filemenu = ui.menuBar->addMenu("打开文件(&F)");
QAction *action_Open = filemenu->addAction(QIcon("../...路径"),
		tr("打开文件(&Q)"));
//ui编码菜单栏自带,无需创建

纯代码

QMenuBar *bar = MenuBar( );
QMenu *file = bar->addMenu(tr("file"));
QAction *action_Open = file->addAction(QIcon("../...路径"),
  tr("打开文件(&Q)")))

工具栏

最常用QToolButton,QComboBox
构建工具栏与布局相似

QToolBar * mainToolBar = addToolBar(“toolbar”);//有参数哦!
QToolButton *toolbtn = new QToolButton(this);
mainToolButton->addWidget(toolbtn);
//用菜单创建Action
QMenu *menu = new QMenu(this);
menu->addAction(tr("..."));
toolbtn->setMenu(menu);

内心部件

就如MainWindow中插入widget以便设置布局
setCentralWidget(widget);

状态栏

临时消息:showMessage(),在左边显示
正常消息:一般用addWidget( ),添加一个QLabel 显示,如页数,行数等
永久消息:addPermanentWidget(),添加一个QLabel显示,最右端,不会被临时消息掩盖。

资源机制

一般情况下,用来导入图片
在项目中添加好resource file 后

    bg = new QLabel(tr("background"));
    //图片插入QLabel
    bg->setPixmap(QPixmap("://image/image/bg.jpg"));
    //设置大小,图片自适应
     bg->setMaximumSize(400, 150);
     bg->setScaledContents(true);

登录界面实验小结

  1. 图片的QLabe插入
  2. QMap存储数据的夸文件使用:
    运用QMap存储数据的类中,实现一个public的方法,并在另一类中实现类对象,通过对象调用含有QMap的方法。
  3. 多个自定义类的头文件不能互相include,会出现类无法实例化的错误
  4. 弹窗方法:
    QMessageBox::information(this,tr(“窗口名”),tr(“弹窗内容”))
  5. 新弹窗打开办法:
void MyWorld::openRegister()
{
    logon->show();//logon为自定义类的实例
    }

后序:事件,过滤器,定时器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用QT编写记事本的示例代码,实现了MainWindow的功能,包括菜单栏、状态栏、中心部件、工具,以及文件打开和保存功能: mainwindow.h 文件: ```cpp #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); private slots: void openFile(); void saveFile(); private: void createMenu(); void createToolbar(); void createStatusBar(); void createCentralWidget(); QString currentFilePath; }; #endif // MAINWINDOW_H ``` mainwindow.cpp 文件: ```cpp #include "mainwindow.h" #include <QMenuBar> #include <QMenu> #include <QAction> #include <QFileDialog> #include <QTextEdit> #include <QToolBar> #include <QStatusBar> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { createMenu(); createToolbar(); createStatusBar(); createCentralWidget(); } MainWindow::~MainWindow() { } void MainWindow::createMenu() { QMenuBar *menuBar = new QMenuBar(this); setMenuBar(menuBar); QMenu *fileMenu = menuBar->addMenu(tr("文件")); QAction *openAction = fileMenu->addAction(tr("打开")); connect(openAction, &QAction::triggered, this, &MainWindow::openFile); QAction *saveAction = fileMenu->addAction(tr("保存")); connect(saveAction, &QAction::triggered, this, &MainWindow::saveFile); } void MainWindow::createToolbar() { QToolBar *toolbar = new QToolBar(this); addToolBar(toolbar); QAction *openAction = toolbar->addAction(QIcon(":/icons/open.png"), tr("打开")); connect(openAction, &QAction::triggered, this, &MainWindow::openFile); QAction *saveAction = toolbar->addAction(QIcon(":/icons/save.png"), tr("保存")); connect(saveAction, &QAction::triggered, this, &MainWindow::saveFile); } void MainWindow::createStatusBar() { QStatusBar *statusBar = new QStatusBar(this); setStatusBar(statusBar); } void MainWindow::createCentralWidget() { QTextEdit *textEdit = new QTextEdit(this); setCentralWidget(textEdit); } void MainWindow::openFile() { QString filePath = QFileDialog::getOpenFileName(this, tr("打开文件")); if (!filePath.isEmpty()) { // 打开文件的逻辑处理 // 这里只简单的将文件路径保存起来 currentFilePath = filePath; } } void MainWindow::saveFile() { if (!currentFilePath.isEmpty()) { // 保存文件的逻辑处理 // 这里只简单的展示一个保存成功的消息框 QMessageBox::information(this, tr("保存文件"), tr("文件保存成功!")); } else { QMessageBox::warning(this, tr("保存文件"), tr("当前没有打开的文件!")); } } ``` 这是一个简单的记事本实现代码,您可以根据需要进一步完善和优化。注意,在编译运行之前,您需要将 `open.png` 和 `save.png` 图片资源添加到项目中,并在.pro文件中添加相应的资源配置。 希望这个示例对您有帮助!如果您有任何问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值