Qt拖拽排序控件如何实现

王桑的一天 2017-09-11 03:02:03
在QHBoxLayout上面放几个QPushButton,它们是水平排列的。

我想可以拖拽这些按钮,调整他们的前后顺序。

请问应该怎样实现?

拖拽移动我可以实现 ,但移动后,好像原来的QHBoxLayout布局无效了? 移到哪里就停到哪里。

还有就是,后添加到QHBoxLayout的按钮,会在最前面,那么假如我向后拖拽第一个按钮,第一个按钮就被后面的按钮盖住。
...全文
795 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
王桑的一天 2017-09-12
  • 打赏
  • 举报
回复
引用 1 楼 adeng1919 的回复:
用布局工具的话,一般是拖拽完了再布局,要拖拽就打破布局重新来 或者直接用代码生成

QWidget *window = new QWidget;
    QPushButton *button1 = new QPushButton("One");
    QPushButton *button2 = new QPushButton("Two");
    QPushButton *button3 = new QPushButton("Three");
    QPushButton *button4 = new QPushButton("Four");
    QPushButton *button5 = new QPushButton("Five");

    QHBoxLayout *layout = new QHBoxLayout;
    layout->addWidget(button1);
    layout->addWidget(button2);
    layout->addWidget(button3);
    layout->addWidget(button4);
    layout->addWidget(button5);

    window->setLayout(layout);
    window->show();
你好,现在并没有一个好的实现思路,不知道用TableWidget, 还是用QDrag (不会用),还是普通的拖拽移动,哪一个更适合。 每一种方式都有一点问题。 1. 用table, drop后会覆盖目标cell, 原cell变为空 2. QDrag 拖拽时,始终显示禁止drop的图标,而且一拖,就无法得到鼠标在Window上的位置,因为鼠标是在Button之上。 3. 普通拖拽 ,无法保持拖拽的Button在最前面。
DC_Sea 2017-09-12
  • 打赏
  • 举报
回复
你 看看 这个 http://blog.csdn.net/big_c_god/article/details/53384785
懒懒的吉他手 2017-09-11
  • 打赏
  • 举报
回复
用布局工具的话,一般是拖拽完了再布局,要拖拽就打破布局重新来 或者直接用代码生成

QWidget *window = new QWidget;
    QPushButton *button1 = new QPushButton("One");
    QPushButton *button2 = new QPushButton("Two");
    QPushButton *button3 = new QPushButton("Three");
    QPushButton *button4 = new QPushButton("Four");
    QPushButton *button5 = new QPushButton("Five");

    QHBoxLayout *layout = new QHBoxLayout;
    layout->addWidget(button1);
    layout->addWidget(button2);
    layout->addWidget(button3);
    layout->addWidget(button4);
    layout->addWidget(button5);

    window->setLayout(layout);
    window->show();

16,212

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧