我正在尝试根据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);
}