1

在我正在开发的应用程序中,我有一组QPushButton相互重叠的 s,如下所示:

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;}" );

按钮呈现如下:

在此处输入图像描述

这个人工制品的原因是什么,我该如何解决它。

关于我的应用程序 的信息 重叠按钮是属于虚拟键盘不同字符集的键。这些键根据当前字符集升高或降低。

4

1 回答 1

2

您想使用QStackedWidget并将 QPushButtons 放在该堆栈中。然后你只需要使用QStackedWidget::setCurrentIndexQStackedWidget::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);
于 2013-07-22T21:40:48.403 回答