代码之家  ›  专栏  ›  技术社区  ›  Bogdan

创建简单单色按钮的最简单方法

  •  0
  • Bogdan  · 技术社区  · 6 年前

    我需要创建一个简单的单色按钮,只有黑色框架和白色背景上的黑色文本(我知道,1bit会很难看)。是否有任何方法不需要重新实现paintevent?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Tarod    6 年前

    最好的方法是使用自己的样式表。

    下面是一个基本的例子。在本例中,我们使用 white 背景, black 边界和 黑色 文本。相反,当用户按下按钮时。

    根据您的需求,您可以为如下状态设置样式: disabled , checked hover .

    主CPP

    #include <QtWidgets>    
    #include "mainwindow.h"
    
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
        MainWindow window;
        window.show();
        return app.exec();
    }
    

    主窗口

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include <QtWidgets>    
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        MainWindow();    
    };
    
    #endif
    

    主窗口

    #include <QtWidgets>    
    #include "mainwindow.h"
    
    MainWindow::MainWindow()
    {
        QWidget *centralWidget = new QWidget(this);
        QHBoxLayout *layout = new QHBoxLayout;
        QPushButton *pushButton = new QPushButton("PushButton");
    
        pushButton->setStyleSheet(
                                "QPushButton {"
                                " background-color: white;"
                                " border: 1px solid black;"
                                " color: black;"
                                " outline: none;"
                                "}"
                                "QPushButton:pressed {"
                                " background-color: black;"
                                " border: 1px solid white;"
                                " color: white;"
                                "}"
                        );
    
        layout->addWidget(pushButton);
        centralWidget->setLayout(layout);
        setCentralWidget(centralWidget);
    }
    

    好例子 here here .