Qt中QIcon图标设置(标题、菜单栏、工具栏、状态栏图标)

1 exe程序图标概述

在 Windows 操作系统中,程序图标一般会涉及三个地方;

(1) 可执行程序(以及对应的快捷方式)的图标

(2) 程序界面标题栏图标

(3)程序在任务栏中的图标

2 icon图标文件制作方法

参考:ICO图标在线转换_ICO图标制作工具_PNG在线转ICO - ICO吧

3 QT QIcon图标设置方法

(1)方法一

【1】在.pro中添加:

RC_ICONS = favicon.ico #facicon.ico为图标文件名

【2】代码中设置

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    this->setWindowTitle("ICON SET");
    QWidget* w=new QWidget;
    setCentralWidget(w);

    setWindowIcon(QIcon("favicon.ico"));//或者 setWindowIcon(QIcon(":/favicon.ico"));
}

【3】图标文件放置.pro同级目录 ;也可以根据需要放置其它地方,调整调用路径

 【4】显示xxx.exe文件的图标

在项目目录下新建一个txt,并改名为 xxx.rc,我这里是main.rc;

添加如下内容 IDI_ICON1 ICON DISCARDABLE “xxx.ico” 引号里是你的图标名字,我这里是favicon.ico。

IDI_ICON1 ICON DISCARDABLE "favicon.ico"

 

添加刚才创建的main.rc ,或者直接在pro文件里添加:RC_FILE += main.rc

 【5】qmake->构建->运行结果

(2)方法二

【1】通过 Qt Creator 为项目创建一个新的资源文件,如下图所示:

【2】 右键点击创建好的资源文件,选择“Open in Editor”;

 选择添加前缀

添加现有的图标文件 ,如下图标文件名称为“favicon.ico”,如下表明该文件位于.pro项目同级目录下;

【3】 代码中设置

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    this->setWindowTitle("ICON SET");
    QWidget* w=new QWidget;
    setCentralWidget(w);

    setWindowIcon(QIcon(":/favicon.ico"));
}

  【4】qmake->构建->运行结果;(显示xxx.exe文件的图标参考方法一)

4 菜单栏图标设置

    QMenuBar *menuBar = this->menuBar();  // 创建一个菜单栏
    QMenu *fileMenu = menuBar->addMenu("FILE"); // 创建一个菜单
    QAction *openAction = fileMenu->addAction("OPEN"); // 创建一个动作
    QIcon openIcon(":/open.png"); // 假设你有一个名为"open.png"的图标文件在资源文件中
    openAction->setIcon(openIcon);  // 设置图标

 

5 工具栏图标设置

    QToolButton *button = new QToolButton();
    button->setText("LOAD");
    QToolBar *toolBar = addToolBar("toolBar");
    toolBar->addWidget(button);

    QPixmap pixmap(":/load.png"); // 假设你有一个名为"load.png"的图标文件在资源文件中
    // QIcon barLoad(":/load.png");// 或者使用icon
    button->setIcon(pixmap);
    button->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); // 设置文字在图标下方,也可旁边
    //button->setIconSize(QSize(64, 64));

 5 状态栏图标设置

    QIcon iconOpenFile(":/open.png");  // 假设你有一个名为"open.png"的图标文件在资源文件中
    QStatusBar *sBar = statusBar();   //状态栏
    QLabel *iconLabel = new QLabel(this);
    iconLabel->setText("Normal text file");// 设置提示文本
    iconLabel->setPixmap(iconOpenFile.pixmap(QSize(32, 32)));//设置图标大小
    QLabel *textLabel = new QLabel(this);
    textLabel->setText("Normal text file");

    sBar->addWidget(iconLabel); // 添加图标到状态栏
    sBar->addWidget(textLabel);//文本添加状态栏
    sBar->addWidget(new QLabel("2", this));  //addWidget 从左往右添加
    sBar->addPermanentWidget(new QLabel("3", this));  // addPermanentWidget 从右往左添加

PyQt6是一个用于Python的跨平台GUI应用程序开发框架,它结合了Qt库的强大功能与Python的简洁易用性。在PyQt6,你可以创建丰富的用户界面,包括菜单栏工具栏状态栏。 1. **菜单栏(Menubar)**: 菜单栏通常位于窗口顶部,包含了应用的主要功能选项,如文件、编辑、查看等。在PyQt6,可以使用`QMenuBar`类来创建和管理菜单,通过`addMenu()`添加子菜单,然后使用`addAction()`为菜单项关联相应的函数或槽(slot)。 ```python menu_bar = QApplication.menuBar() file_menu = menu_bar.addMenu('文件') open_action = QAction('打开', self) save_action = QAction('保存', self) file_menu.addAction(open_action) file_menu.addAction(save_action) ``` 2. **工具栏(Toolbar)**: 工具栏一般包含一组操作频繁的按钮或图标,方便用户快速访问。`QToolBar`类可以用来创建工具栏。同样地,你可以通过`addAction()`添加工具栏动作,并设置其显示文本和图标。 ```python toolbar = QToolBar('常用操作') open_button = QAction(QIcon('open_icon.png'), '打开', self) toolbar.addAction(open_button) self.addToolBar(toolbar) ``` 3. **状态栏(Status Bar)**: 状态栏通常位于窗口底部,用于显示程序的状态信息,如当前的工作进度或错误提示。使用`QStatusBar`创建状态栏,然后添加`QLabel`或其他小部件显示信息。 ```python status_bar = self.statusBar() status_label = QLabel('欢迎使用', self) status_bar.addWidget(status_label) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值