• 4978阅读
  • 3回复

[提问]qml设置让窗体没有边界,后,怎么让用户可以随意改变窗体的大小 [复制链接]

上一主题 下一主题
离线fghfghfgh
 

只看楼主 倒序阅读 楼主  发表于: 2014-11-27


没有隐藏边界之前,可以随意拖动边界,来改变大小,

用下面的方法隐藏边界后,就无法随意拖动边界 ,改变大小了,边界都无法选了,鼠标靠近,没有出现  2个箭头符号了
  1. import QtQuick 2.3
  2. import QtQuick.Controls 1.2
  3. import QtQuick.Window 2.2
  4. ApplicationWindow {
  5. id: window
  6.    flags:  Qt.FramelessWindowHint | Qt.Window
  7.   color: "red"
  8. }

谁知道 如何 在隐藏边界的情况下, 让用户可以随意改变窗体的大小吗
离线chiang

只看该作者 1楼 发表于: 2014-11-27
Qt::CustomizeWindowHint
@suzhou 
离线fghfghfgh

只看该作者 2楼 发表于: 2014-11-27
回 chiang 的帖子
chiang:Qt::CustomizeWindowHint (2014-11-27 07:44)

你好,我添加了这个flags,但是好像没有效果啊  无法 随意改变大小,鼠标放在边缘,没有出现改变大小的那个鼠标样子
离线qyvlik

只看该作者 3楼 发表于: 2015-04-20
ApplicationWindow {
    id:window
    flags: Qt.FramelessWindowHint | Qt.WindowSystemMenuHint| Qt.WindowMinimizeButtonHint| Qt.Window
   MouseArea {
        z:window.z + 1
        anchors.right: parent.right
        anchors.bottom: parent.bottom
        // 鼠标拖拽窗口移动
        width: 10
        height: 10
        property point previousPosition
        onPressed:  previousPosition = Qt.point(mouseX, mouseY);
        onPositionChanged: {
            if (pressedButtons == Qt.LeftButton) {
                var dx = mouseX - previousPosition.x;
                var dy = mouseY - previousPosition.y;
                var w = window.width+dx;
                var h = window.height+dy;
                if(w >= 400)  window.width = w;
                if(h >= 200) window.height = h;
            }
        }
    }
}
ubiboot
快速回复
限100 字节
 
上一个 下一个