QT-交换图标
我制作了一个简单的程序来演示我在尝试使用QIcon swap()函数时遇到的问题。我试图用这个功能交换两个QpushButton上的图标,但它似乎不起作用 主窗口QT-交换图标,qt,qpushbutton,qicon,Qt,Qpushbutton,Qicon,我制作了一个简单的程序来演示我在尝试使用QIcon swap()函数时遇到的问题。我试图用这个功能交换两个QpushButton上的图标,但它似乎不起作用 主窗口 #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QPushButton> namespace Ui { class MainWindow; } class MainWindow : public QMai
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QPushButton>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
public slots:
void swap_icons();
private:
Ui::MainWindow *ui;
QPushButton *buttons[2];
};
#endif // MAINWINDOW_H
当我按下按钮[0]时,图标不会互换。它们保持不变。您不设置新图标。我认为应该是这样的:
buttons[0]->setIcon(buttons[0]->icon().swap(buttons[1]->icon()));
但是,这只会更改第一个按钮的图标
我会用更简单的方式写,更容易阅读和理解:
QIcon tmp = buttons[0]->icon();
buttons[0]->setIcon(buttons[1]->icon());
buttons[1]->setIcon(tmp);
QIcon tmp = buttons[0]->icon();
buttons[0]->setIcon(buttons[1]->icon());
buttons[1]->setIcon(tmp);