相关疑难解决方法(0)

Qt:调整无边框小部件的大小

我的问题与问题基本相同,但适用于Qt C++框架.

我通过使用标志Qt :: QPopup |继承QWidget来实现一个弹出窗口 Qt的:: QWindow.我希望这个窗口是可移动的和可调整大小的,我现在通过使用以下代码中的鼠标事件来实现这一点:

void TextPopup::mousePressEvent(QMouseEvent* event)
{
    offset = event->pos();
    QWidget::mousePressEvent(event);
}

void TextPopup::mouseMoveEvent(QMouseEvent* event)
{
    if(event->buttons() & Qt::LeftButton)
        if(resizeMode) {
            QPoint p = mapToGlobal(event->pos()) - geometry().topLeft();
            resize(p.x(), p.y());
        } else
            move(mapToParent(event->pos() - offset));
    else {
        QPoint diff = geometry().bottomRight() - mapToGlobal(event->pos());
        if(diff.x() <= 6 && diff.y() <= 6) {
            if(!resizeMode) {
                setCursor(Qt::SizeFDiagCursor);
                resizeMode = true;
            }
        } else {
            if(resizeMode) {
                setCursor(Qt::SizeAllCursor);
                resizeMode = false;
            }
        } …
Run Code Online (Sandbox Code Playgroud)

c++ qt resize widget borderless

5
推荐指数
2
解决办法
8135
查看次数

标签 统计

borderless ×1

c++ ×1

qt ×1

resize ×1

widget ×1