hzp2022 2023-12-12 20:33 采纳率: 46.2%
浏览 22
已结题

QT,自定义控件的一个问题

QT,我在自定义一个按钮的时候出现了一个问题,就是我想创建一个设计师界面类,继承与Qpushbutton,类名叫btn

btn::btn(QWidget *parent) :
    QPushButton(parent),
    ui(new Ui::btn)
{
    ui->setupUi(this);
    ui->pushButton->setStyleSheet("QPushButton{background-color: rgb(225, 225, 225);border:2px groove gray;border-radius:10px;padding:2px 4px;border-style: outset;}"
                                               "QPushButton:hover{background-color:rgb(229, 241, 251); color: black;}"
                                               "QPushButton:pressed{background-color:rgb(204, 228, 247);border-style: inset;}");

}

ui->pushButton是我在设计师界面拖的一个控件,然后我在主窗口,拖了一个按钮,然后提升为btn,但是我发现我的这个btn并没有改变样式,但是如果在btn的cpp中的ui->pushbutton,改成this->pushbutton,主界面的按钮就改变样式了,请问这两者写法有什么区别吗?

  • 写回答

2条回答 默认 最新

  • 火花20180731 2023-12-13 10:04
    关注

    错得太离谱!
    如果你要自定义类继承自QPushButton就不应该有UI文件,设置样式表应该是this->setStyleSheet...
    setupUI相当于是在你自己创建的QWidget【父窗口】中,按照UI文件的设计,创建【子控件】,并进行布局
    所以你的代码相当于是把一个QPushButton作为【父窗口】,然后在上面布局其它QPushButton【子控件】

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月21日
  • 已采纳回答 12月13日
  • 创建了问题 12月12日