当前位置: 代码迷 >> QT开发 >> Qt的PushButten有关问题高手来 小弟我用的vs2008和Qt4.2.7
  详细解决方案

Qt的PushButten有关问题高手来 小弟我用的vs2008和Qt4.2.7

热度:94   发布时间:2016-04-25 04:39:05.0
Qt的PushButten问题高手来 我用的vs2008和Qt4.2.7
有5个pushbutten排成一排,下面对应一个为4页的stackedWidget(其中一个为当前页面),点击一个按钮显示对应的页面,然后按钮变长变贴图。stackedwidget的每个页面上也有按钮(这个按钮不用做效果),点击按钮可以跳到另外一个页面,在这里我是用到信号槽。页面上的按钮也是信号槽,这个信号又连接了那排按钮的信号使在换页的时候那排按钮有相应的按钮效果变化,这个大家能搞懂这个逻辑吧,然后我贴代码出来,这段只是那排按钮的其中一个按钮的代码,我写的很长,4个按钮的话。。。。太蛋疼了。。。有没有更好的办法,我就只写槽函数了。  
void NewGame::td_slot()
{
ui.stackedWidget->setCurrentIndex(0); //显示对应页面页功能 ui.xx 能懂吧,都是按钮
  ui.td->setMinimumSize(QSize(180, 50)); //以下都是按钮效果功能,这个被点击的按钮要变化效果,这排是变长的 ui.xj->setMinimumSize(QSize(115,50)); //其他按钮效果都得变回原样
ui.ls->setMinimumSize(QSize(115, 50));  
ui.dy->setMinimumSize(QSize(115, 50));
ui.td->setStyleSheet(QString::fromUtf8("\n"
"\n"
"QPushButton::!pressed{\n"
"border-image: url(:/\346\226\260\345\273\272\346\270\270\346\210\217/\345\205\254\345\205\261\347\273\204\344\273\266/nav_btn.png);\n" //这个是图的二进制位,能懂吧
"font: 12pt \"\345\256\213\344\275\223\" ;\n"
" color: rgb(255, 255, 255);\n"
"}\n"
"\n"
"}"));
ui.xj->setStyleSheet(QString::fromUtf8("\n"
"\n"
"QPushButton::!pressed{\n"
"background-color: rgb(21, 56, 77);\n"
"font: 12pt \"\345\256\213\344\275\223\" ;\n"
" color: rgb(255, 255, 255);\n"
"}\n"
"\n"
"QPushButton::hover{\n"
" border-image: url(:/\346\226\260\345\273\272\346\270\270\346\210\217/\345\205\254\345\205\261\347\273\204\344\273\266/nav_btn.png);\n"
" font: 12pt \"\345\256\213\344\275\223\" ;\n"
"\n"
"}"));
ui.ls->setStyleSheet(QString::fromUtf8("\n"
"QPushButton::!pressed{\n"
"background-color: rgb(21, 56, 77);\n"
"font: 12pt \"\345\256\213\344\275\223\" ;\n"
"color: rgb(255, 255, 255);\n"
"}\n"
"\n"
"QPushButton::hover{\n"
" border-image: url(:/\346\226\260\345\273\272\346\270\270\346\210\217/\345\205\254\345\205\261\347\273\204\344\273\266/nav_btn.png);\n"
" font: 12pt \"\345\256\213\344\275\223\" ;\n"
"\n"
"}"));
ui.dy->setStyleSheet(QString::fromUtf8("QPushButton::!pressed{\n"
"background-color: rgb(21, 56, 77);\n"
"font: 12pt \"\345\256\213\344\275\223\" ;\n"
"color: rgb(255, 255, 255);\n"
"}\n"
"\n"
"QPushButton::hover{\n"
" border-image: url(:/\346\226\260\345\273\272\346\270\270\346\210\217/\345\205\254\345\205\261\347\273\204\344\273\266/nav_btn.png);\n"
" font: 12pt \"\345\256\213\344\275\223\" ;\n"
"\n"
"}"));

}

然后我还用了一个方法。。。更蛋疼。。。下面这个就是打的一个草稿,3个按钮3个页面,但是做出来 按钮变化后变不回来
ui.pushButton->setGeometry(QRect(110, 110, 200, 100));
ui.pushButton->setStyleSheet(QString::fromUtf8("background-color: rgb(25,255, 44)"));



if (ui.stackedWidget->currentIndex()==0)
{
ui.pushButton_2->setMinimumSize(QSize(200, 0));
ui.pushButton_2->setStyleSheet(QString::fromUtf8("background-color: rgb(25,255, 44)"));
}

if (ui.stackedWidget->currentIndex()==1)
{
ui.pushButton_2->setMinimumSize(QSize(200, 0));
ui.pushButton_2->setStyleSheet(QString::fromUtf8("background-color: rgb(25,255, 44)"));
}
if (ui.stackedWidget->currentIndex()==2)
{
ui.pushButton_3->setMinimumSize(QSize(200, 0));
ui.pushButton_3->setStyleSheet(QString::fromUtf8("background-color: rgb(25,255, 44)"));
}
  相关解决方案