0

我的应用程序中使用了一个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;
}
4

0 回答 0