我遇到了QPushButton
的問題。我有三個不同的類(窗口),有不同的按鈕,我在每個類(窗口)中創建,它們都有紅色(這意味着我添加了特殊方法爲每個類中的這些按鈕設置顏色)。Qt pushButton和繼承
現在我必須創建QRadioButtons
與選擇主窗口上的按鈕顏色。但我一般不能這樣做,我只能做主要的windwow按鈕,而不是2D和3D窗口。
解決這個問題的主要思想是繼承,所以我需要創建一個自己的抽象類PushButton
,它包含了一些特殊的屬性(大小,顏色等)。然後我需要繼承主類QPushButton
。
完全可以說,說起來容易,但很難做到。你能幫助實現嗎?知道這不是一個教程的事情。但如果可以的話,謝謝!
我的例子,所以我有一個主窗口:
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
QLabel *label_pic;
QRadioButton *yellow;
QRadioButton *black;
QRadioButton *blue;
QRadioButton *button_red;
QRadioButton *button_green;
QRadioButton *button_yellow;
private slots:
[......]
void button_yellow_clicked();
void button_green_clicked();
void button_red_clicked();
[......]
private:
Ui::MainWindow *ui;
};
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
[.....created some buttons....]
/////////////////////////////////////////////////////////////
yellow=new QRadioButton(this);
yellow->setText("Yellow");
yellow->setGeometry(QRect(120,270, 100, 20));
button_red=new QRadioButton(this);
button_red->setText("Red");
button_red->setGeometry(QRect(230,300, 100, 20));
//////////////////////////////////////////////////////////////////////////
connect(button_yellow,SIGNAL(clicked()),SLOT(button_yellow_clicked()));
}
void MainWindow::button_yellow_clicked()
{
ui->pushButton_2->setAutoFillBackground(true);
ui->pushButton->setStyleSheet("background-color: rgb(2, 120, 0); color: rgb(4, 208, 63)");
}
所以,他們有另一個按鈕另一個類,但我想通過點擊在主按鈕來改變,由一個QRadiButton
。
你不應該延長推按鈕只是爲了改變他們的顏色。你可以設計這些風格。 – dtech
使用引號進行代碼樣式格式化,並將粗體字體用於......以及沒有任何內容。我允許自己爲你解決這個問題 – user463035818
@dtech是的,我知道,但是想象一下,在每種顏色下的每個窗口中都有5-6個按鈕,現在我想改變它們的顏色。我想通過「單擊」來獲得我。否則,我想爲此創建一個特殊的課程。 – nikitaxgusev