在我正在开发的应用程序中,我已经有了QPushButton
个彼此重叠的集合:
resize(300, 300);
QRect geometry( 100, 100 , 100 , 100 );
m_button[0] = new QPushButton( this );
m_button[0]->setGeometry( geometry );
m_button[0]->setText( "Button 1" );
m_button[1] = new QPushButton( this );
m_button[1]->setGeometry( geometry );
m_button[1]->setText( "Button 2" );
m_button[1]->raise();
结果:
但是在应用程序级别添加以下样式
QApplication app(argc, argv);
app.setStyleSheet( "QPushButton{ border-width: 1px; border-color: blue; border-style: solid;}" );
按钮的渲染方式如下:
这个人工制品的原因是什么,以及如何解决它。
有关我的申请的信息 重叠按钮是属于虚拟键盘的不同字符集的键。这些键根据当前字符集升高或降低。
答案 0 :(得分:2)
您想使用QStackedWidget并将QPushButtons放在该堆栈中。然后,您只需使用QStackedWidget::setCurrentIndex或QStackedWidget::setCurrentWidget提升所需的按钮。
编辑:示例代码:
resize(300, 300);
QStackedWidget* stack = new QStackedWidget(this);
stack->setGeometry( 100, 100 , 100 , 100 );
m_button[0] = new QPushButton( this );
m_button[0]->setText( "Button 1 );
stack->addWidget(m_button[0]);
m_button[1] = new QPushButton( this );
m_button[1]->setText( "Button 2" );
stack->addWidget(m_button[1]);
stack->setCurrentWidget(m_button[1]); //or stack->setCurrentIndex(1);