C++ (Qt)void design_dlg::choose_color(){ // Создание диалога выбора цвета QColor temp = QColorDialog::getColor(Qt::white, this, "Выбор цвета..."); // Установка надписи на кнопке ((QPushButton *) sender())->setText(QString().setNum(temp.rgb(), 16)); // Создание CSS-записи: QString temp_style = QString().setNum(temp.rgb(), 16); // Считывание цвета temp_style.remove(0, 2); // Убираем прозрачность (не уверен, что CSS её поддерживает) temp_style = "background-color: #" + temp_style; // Объединяем директиву и цвет ((QPushButton *) sender())->setStyleSheet(temp_style); // Устанавливаем цвет}
C++ (Qt)QPushButton *btn = qobject_cast<QPushButton*>(sender());if(btn && color.isValid()){ QPalette palette = btn->palette(); palette.setColor(QPalette::Button, color); palette.setColor(QPalette::Light, color.lighter()); palette.setColor(QPalette::Dark, color.darker()); btn->setPalette(palette);}
C++ (Qt)#include "StartDialog.h"#include <QApplication> int main(int argc, char** argv){ QApplication app(argc, argv); StartDialog startDialog; startDialog.setMinimumWidth(200); startDialog.show(); return app.exec();}
C++ (Qt)#ifndef _StartDialog_h_#define _StartDialog_h_ #include <QWidget> class StartDialog : public QWidget{ Q_OBJECT public: StartDialog(QWidget* pwgt = 0); public slots: void slotColor(); }; #endif //_StartDialog_h_
C++ (Qt)#include "StartDialog.h"#include <QtGui> StartDialog::StartDialog(QWidget* pwgt) : QWidget(pwgt){ QPushButton* pcmdColor = new QPushButton("&Color"); connect(pcmdColor, SIGNAL(clicked()), this, SLOT(slotColor())); QVBoxLayout* pvbxLayout = new QVBoxLayout; pvbxLayout->addWidget(pcmdColor); setLayout(pvbxLayout);} void StartDialog::slotColor(){ QColor color = QColorDialog::getColor(Qt::white); QPushButton *btn = qobject_cast<QPushButton*>(sender()); if(btn && color.isValid()) { QPalette palette = btn->palette(); palette.setColor(QPalette::Button, color); palette.setColor(QPalette::Light, color.lighter()); palette.setColor(QPalette::Dark, color.darker()); btn->setPalette(palette); }}