我的应用程序中使用了一个qsplitter,并且将OpaqueResize设置为'false',在拖动分割器手柄时,不断重新绘制变小的小部件,这是不对的。我的想法是拆分器手柄两侧的QWidgets应该在mouseRelease之前不会收到任何关于repaint或resize的信号。这个问题困扰了我好几天,如果有人知道如何处理,请帮我一把,谢谢你。Qt5.11.2 on Windows10 64-bits
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
// left
ui->widget_2->bgColor = QColor(255,0,0);
ui->widget_2->tag = 0;
// right
ui->widget_3->bgColor = QColor(0,0,255);
ui->widget_3->tag = 1;
}
MainWindow::~MainWindow()
{
delete ui;
}
MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
{
bgColor = QColor(255,255,255);
tag = 0;
}
void MyWidget::paintEvent(QPaintEvent *event)
{
QWidget::paintEvent( event );
QPainter painter(this);
QBrush brush( bgColor );
painter.fillRect( event->rect(), brush );
qDebug() << "paintEvent:tag="<<tag;
}