摘要:
Qt提供的容器类的最大优点在于平台无关性和隐式共享特性11.1Sequentail ContainersQVector< T> array-like data structure(在尾部插入数据时效率很高,而在中间和头部插入数据时开销很大)。QVector提供了[]运算符QVector可以用< < 运算符代替append()函数。QVector中的基本类型及指针被初始化为0。QLinkedList< T>QLinkedList不提供[]运算符,所以必须通过迭代器来对其进行遍历。QList< T>array-list:综合了QVector< 阅读全文
摘要:
18.1Creaing ThreadsQt中提供多线程的机制很简单:创建QThread的派生类,并重新实现其保护成员函数run()。QThread::run(),被调用来开始线程的执行,在run()结束时线程终止。QThread::terminate(),用来终止线程的执行,非阻塞操作,并不保证线程的立即终止;可以在调用QThread::terminate()之后调用QThread::wait()来实现同步等待。terminate()并不是值得推荐结束线程的方法,因为它强制线程终止而不给线程任何清场的机会。18.2Synchronizing ThreadsQt提供的用于线程同步的类包括QMut 阅读全文
摘要:
Subclassing QMainWindow应用程序的主窗口是通过创建QMainWindow的派生类来完成的。QMainWindow和QDialog一样,都是派生自QWidget。closeEvent()是由QWidget提供的一个虚函数,在用户关闭窗口时会被自动调用。setCentralWidget()将某个Widget设置为主窗口的central widget, 而central widget意味着在显示时会占据主窗口的中央位置。Qt下的GUI 编程支持多种图形格式。可以使用多种方式为应用程序提供图像,最常见的包括:1).将图像存储在文件中,运行时加载之。2).在源码中include X 阅读全文
摘要:
4.1The Central WidgetQMainWindow的中央区域可以被任何类型的widget占据。4.2Subclassing QTableWidgetQTableWidget会自动创建QTableWidgetItem来存储用户的输入。QTableWidgetItem类并不是widget,而是一个纯粹的data class。QTabeWidget::setItermProtype()可以设置在获得用户输入的情况下自动创建哪种cllass。4.3Loading and SavingQFile & QDataStreamQFile的析构函数负责将打开的文件关闭。QDataStream类具 阅读全文
摘要:
Qt中的每个类,都有一个对应的同名头文件,其中包含其类定义。例如要使用QApplication类,则需要在程序中添加" #include < QApplication> "QApplication类用于管理应用程序范围内的资源。其构造函数需要main函数的argc和argv作为参数。widget被创建时都是不可见的(always created hidden)。widget中可容纳其它widget。Qt中的widget在有用户行为或状态改变时会emit signal。 signal可以和slot函数连接在一起(connect),这样当有signal被emit时, 阅读全文