QT:复杂布局和无缝窗口背景图像
在你们QT专家的帮助下,我能够实现这个窗口,具有所需的布局和可调整大小的行为。现在我有另一个有趣的问题 我希望我的整个窗口有一个“重复xy”无缝模式。如果我将它应用于一个没有布局和内部小部件的简单窗口,它就可以完美地工作。然而,我现在在小部件中有一个小部件的“树”,我不能设置样式表来为每个小部件绘制无缝的背景图像,因为它看起来不自然。图像必须是我拥有的所有小部件拓扑的基础。问题是,当我将它应用于底部所有窗口覆盖小部件时,它是不可见的,因为它上面有小部件 有解决办法吗?也许“透明小部件”可以包含可见的小部件QT:复杂布局和无缝窗口背景图像,qt,Qt,在你们QT专家的帮助下,我能够实现这个窗口,具有所需的布局和可调整大小的行为。现在我有另一个有趣的问题 我希望我的整个窗口有一个“重复xy”无缝模式。如果我将它应用于一个没有布局和内部小部件的简单窗口,它就可以完美地工作。然而,我现在在小部件中有一个小部件的“树”,我不能设置样式表来为每个小部件绘制无缝的背景图像,因为它看起来不自然。图像必须是我拥有的所有小部件拓扑的基础。问题是,当我将它应用于底部所有窗口覆盖小部件时,它是不可见的,因为它上面有小部件 有解决办法吗?也许“透明小部件”可以包含可
编写您自己的小部件,继承QWidget。重新实现paintEvent并将其保留为空。小部件本身不会被绘制,但它的子部件会被绘制
my_widget::my_widget( QWidget* parent ) : QWidget( parent )
{
}
void my_widget::paintEvent( QPaintEvent* p_event )
{
// left empty to let my_widget be invisible
}
test_mw::test_mw( QWidget *parent ) : QMainWindow( parent )
{
test_widget = new my_widget( this );
QHBoxLayout* layout = new QHBoxLayout();
QPushButton* button0 = new QPushButton( "Button 0", 0 );
QPushButton* button1 = new QPushButton( "Button 1", 0 );
layout->addWidget( button0 );
layout->addWidget( widget );
test_widget->setLayout( layout );
setCentralWidget( test_widget );
}
尽管my_小部件的paintEvent为空,但两个QpushButton都已绘制。:-) Qt的早期版本中有一个QWidget::setBackgroundOrigin()方法
现在所有的款式都完成了。参见示例我仅使用CSS制作了以下内容,有一个QPlainTextEdit、两个QPushButton和一个QLineEdit。在图中,我向QPlainTextEdit添加了一个红色边框,以便可以看到它,规则如下
QWidget#Form{
background-image: url(:/img/elephant_pattern.gif);
}
QPlainTextEdit{
background:transparent;
border:1px solid red;
}
正如您所看到的,我所需要做的就是在我想要的小部件中设置背景透明
我想我正在寻找一种“div”类型的解决方案,一种不绘制自身并让其下方的视觉“穿透”的容器