Qt Question List

  1. 自动布局管理是否是全局相关的。意味着子容器可能改变整个父容器树的各种性质? 比如一个按钮的大小改变一个容器高度,而高度通过容器耦合到容器内的所有控件大小和位置,同时耦合到容器周围的空间的位置,耦合四散开来。 、 一个简单粗暴的方法是听命于父不顾子,由上一级指定尺寸。、然而QT里布局器一般没法指定尺寸,只能指定margin。显然是由容器中的控件尺寸偏好改变的容器尺寸,进而与父尺寸共同决定了容器。 故有此问
中文乱码问题 Qt4
在已经使用Utf-8编码的情况下,源代码中的中文受到良好支持。当源码中的中文向QString赋值时,传递过程以Byte字节进行,QString内部将其解释为ascii编码,并转为unicode(utf16)储存,从而导致乱码。解决方法是使用QTectCodec::fromUtf8()构造正确编码的字符串。或者用
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
QTextStream in(&inputFile);
in.setCodec(QTextCodec::codecForName("UTF-8"));
手动设定编码。
也可以用Tr()后跟英文字符串,然后用Qt Linguist翻译成资源文件,然后加载
Qt5
内部已改用UTF8,只要源代码和编译器都使用UTF8,那么就不用修改任何东西。
对于VS来说,在源文件开头加入
#pragma execution_character_set("utf-8")

即可

将数字转为字符串如何生成前导零?
使用QString("%1").arg(num, width, 10, QLatin1Char('0'));


如何给主窗口的消息队列添加“重绘”事件?
使用postEvent

信号槽是线程安全的吗?


如何跨越线程传递信号?
需要写消息循环
如何使用Qt默认的线程池?
使用QThreadPool::globalInstance()获得,
class HelloWorldTask : public QRunnable
{
    void run(){qDebug() << "Hello world from thread" <<Thread::currentThread();}
}
HelloWorldTask *hello = new HelloWorldTask();
// QThreadPool takes ownership and deletes 'hello' automatically
QThreadPool::globalInstance()->start(hello);
使用QGraphicsScene绘制大量2D图形的实际方法
比如需要一个视频显示窗口和一个进度条 可以继承QWidget
    videoItem = new QGraphicsVideoItem;
    videoItem->setSize(QSizeF(640, 480));
    QGraphicsScene *scene = new QGraphicsScene(this);
    QGraphicsView *graphicsView = new QGraphicsView(scene);
    scene->addItem(videoItem);
    QBoxLayout *layout = new QVBoxLayout;
    layout->addWidget(graphicsView);
    layout->addWidget(rotateSlider);
    setLayout(layout);

这里的好处是可以通过videoItem->setTransform(QTransform().translate(x, y).rotate(angle).translate(-x, -y));控制视频画面的旋转

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值