1. QString 字符串类 QString是Qt中的字符串类,与C/C++不同的是,不再使用ASCII编码,而使用Unicode编码。因此一个字符不是8位的char,而是16位的QChar,这就是为什么之前一个汉字占用一个字符的原因。、 QString几乎向前兼容所有std::string的API。 部分常用函数如下: // 数字 → QString // 参数1:要转换的...
在Qt中进行log输出, 一般不使用c中的printf, 也不是使用C++中的cout, Qt框架提供了专门用于日志输出的...
Qt提供了若干种智能指针:QPointer、QSharedPointer、QWeakPointer、QScopedPointer、QScopedArrayPointer、QSharedDataPointer、QExplicitlySharedDataPointer。 注:1、笔者Qt版本为4.8; 2、下述示例代码中"Plot"为"QObject"类的子类。 1、QPointer QPointer只用于QObject的实例。如果它指向的对象被销毁,它将自动置空。如...
一旦有事件发生,Qt 便会构建一个相应的 QEvent 子类的对象来表示,然后将它传递给相应的 QObject 对象或其子对象。下面通过例子来看一下 Qt 中的事件传递过程。 新建Qt Gui 应用,项目名称为 myEvent,基类选择 QWidget,然后类名保持 Widget 不变。建立完成后向项目中添加新文件,模板选择 C++ 类,类名为 MyLineE...
QT中三层架构 qt三个界面 Qt的三大窗口dialog、widget、mainwindow 一、dialog、widget、mainwindow的区别 1)、dialog有exec函数,如果是dialog窗口,后边的窗口时不可选的; 2)、widget和dialog都有show函数,如果通过这个函数显示这两种类型的窗口,则两个窗口都是可选的;...
主窗口构造函数代码如下。本例中QtTest是主窗口类,ui.tvHost是QTableView控件: QtTest::QtTest(QWidget *parent) : QMainWindow(parent) { ui.setupUi(this); ui.tvHost->setItemDelegateForColumn(0,newMCheckDelegate(ui.tvHost)); QStandardItemModel* model =newQStandardItemModel(ui.tvHost); ...
在Qt框架中,Q_DECLARE_PRIVATE和Q_DECLARE_PUBLIC是两个常用的宏,用于实现Pimpl(Pointer to Implementation)惯用法,以提高类的封装性和二进制兼容性。本文将详细解释这两个宏的作用、使用方法和背后的原理。
在Qt中,常见到三个exec,第一个是QApplication::exec(),第二个是QEventLoop::exec,第三个是QThread::exec()。本文从源码角度来看看这三个exec()。 QApplication::exec()是QApplication类下的一个静态成员函数,该函数用于进入主事件循环。 QEventLoop::exec是QEventLoop类下的一个公共成员函数,用于进入主事件...
下面开始逐条讲述Qt中的内存管理机制。 回到顶部 一脉相承的栈与堆的内存管理 了解C语言的同学都知道,C语言中的内存分配有两种形式:栈内存、堆内存。 栈内存 栈内存的管理是由编译器来做的,栈上申请的内存变量,生存期由所在作用域决定,超出作用域的栈内存变量会被编译器自动释放。
Qt 一、打开方式 1 从本质上来说,Qt 中的 pro 文件也是一种文本文件,因此,可以使用任意文本编辑器来打开和编辑。当然,如果你没有安装 Qt,Windows 系统在默认情况下是无法识别 pro 文件的。在这种情况下,需要我们手动为其指定打开方式。具体的操作方法是在该文件上右击鼠标,在弹出的右键菜单中选择“打开方式...