Qt小部件在Mac机器上调整大小时闪烁

时间:2016-09-20 08:30:30

标签: qt qwidget qt5.5

我正在尝试根据mainWindow的位置移动和调整QWidget的大小。以下是我的代码。这段代码在Windows机器上的Qt上运行得非常好。

但是,当我在mac机器上运行相同的qt项目时,myWidget会在移动到MainWindow位置之前滞后。另外,当我调整MainWindow的大小时,myWidget会闪烁。我试图在paint事件中的update块中运行代码并移动事件。它们在Windows机器上正常工作,但我在Mac上得到相同的闪烁和延迟。

有人可以告诉我为什么以及纠正这个问题的方法吗?

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    panelWidth=this->width();
    myWidget->resize(panelWidth,panelHeight-50);
    myWidget->setWindowFlags(Qt::WindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint));
    myWidget->setAttribute(Qt::WA_TranslucentBackground);

    QTimer *timer = new QTimer(this);
    connect(timer, SIGNAL(timeout()), this, SLOT(update()));
    timer->start(10);

}
void MainWindow::update()
{
    panelWidth=this->width();
    panelHeight=this->height();

   myWidget->move(this->pos().x(),this->pos().y()+30);
   myWidget->resize(panelWidth,panelHeight-50);
   
}

0 个答案:

没有答案