QT编程心得笔记

1.

sort::sort(QWidget *parent, Qt::WFlags flags)

: QMainWindow(parent, flags)

{

ui.setupUi(this);

ui.groupBox_2->hide();

ui.groupBox_3->hide();

this->layout()->setSizeConstraint(QLayout::SetFixedSize);

//ui.centralWidget->layout()->setSizeConstraint(QLayout::SetFixedSize);

}


上面两个layout是不一样的。一个是ui的网格布局,一个是主窗口的。要达到窗口自己设置最佳显示效果的效果,应该用this->layout()。

setSizeConstraint(QLayout::SetFixedSize)用户不能调整窗口大小,由系统自己显示最佳大小(比如隐藏控件那一整块就不显示)

tr("%1[*] - %2").arg(name).arg(txt)

第一个arg替换%1 第二个arg替换%2 例:myFile.txt[*] - txt

2.

QSplitter

mainSplitter->setStretchFactor(0,1);
mainSplitter->setStretchFactor(1,3);

可以通过上面的代码调整分割线初始位置。mainSplitter里有两个控件,第一个伸展因子为1,第二个为3.表示初始的时候控件“1”大小比控件“0”大(具体大小可以自己去调,数字相差越大,大小相差越大,最好不要用负数)。你将窗口放大以后,那两个控件也是按1:3的比例扩展。如果你只设置了一个,另外一个伸展因子默认为0,则初始化后两个控件占的空间相等

3.

prepareGeometryChange() 用于在项即将发生改变时调用,光用update()是不行的

4.

QPair<QString, double> pair;

QPair 储存一对数据

5.

setZvalue(1000) (保持在最上面,依照具体数值)

setFlag(ItemIgnoresTransformations, true) 确保何如缩放大小都不变

6.
实现拖拽需要重写两个事件:DragEnterEvent和DropEvent

7. 拖动

QDrag *drag = new QDrag(this);
        if (drag->exec(Qt::MoveAction) == Qt::MoveAction)
            delete item; //要在整个拖动操作完成后,才删除原来旧地址的项

如果要让qt知道接受拖动操作,需要在DragEnterEvent,DragMoveEvent和DropEvent事件中标示event->setDropAction(Qt::MoveAction)和event->accept()来接受事件

8.

java风格的迭代器next()返回迭代器右边的项同时把迭代器向后移一个位置。previous同理。

remove删除最后一次跳过的项

setValue()修改最后一次被跳过的项

9.

foreach(QPair<int, int> p, list)//不能这样写 foreach参数错误

QPair<int, int> p;

foreach(p, list);//含逗号的数据类型必须定义在循环外

10.

QProcess用时需要连接到的一些信号和槽

connect(&process, SIGNAL(readyReadStandardError()), this, SLOT(updateOutputTextEdit()));
connect(&process, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(processFinished(int, QProcess::ExitStatus)));
connect(&process, SIGNAL(error(QProcess::ProcessError)),  this, SLOT(processError(QProcess::ProcessError)));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值