初学QT

1970阅读 0评论2015-09-21 lzj123
分类:C/C++

1. 为什么Layout中的控件没有平铺在窗口中?

    在Layout(mainLayout)所在窗口的构造函数中调用setLayout(mainLayout).

2. 如何改变QTableView行交替显示默认的背景色?

    tvContents->setStyleSheet(QString::fromUtf8("alternate-background-color: rgb(255, 223, 107);"));
    tvContents->setAlternatingRowColors(true);
    
    可以在QT Designer中直接设置。
    右键单击QTableView控件,选择Change styleSheet..., 显示下面对话框,点击下图中选中的菜单项即可设置背景色。
    

    另外可以通过设置QTableView的属性palette来改变默认的背景色。参考下图
    
    

3. 删除容器(QVector, QMap,...)中动态分配对象.

   qDeleteAll(vector);

4.  路径组合及表示

    跨平台的程序中组合一个路径时不需要根据定义的宏来区分不同平台,可以使用QDir::separator(), 
    QT assistant中提议直接使用"/", QT会根据不同的平台进行转换。
    如果要显示路径可以调用QString QDir::toNativeSeparators(const QString& pathName), 取得相应平台下的路径。

5. 给一个按钮设置图标,图标文件是ico格式的,但是程序运行时图标总是不能显示。文件格式如果是bmp或png的话就可以显示出来。

   查看QT的帮助,发现QIcon默认支持的文件格式通过QImageReader::supportedImageFormats()可以知道,里面没有"ico"格式。
   解决的办法是将QT的plugins路径里面的imageformats目录拷贝到可执行文件所在的路径,
   imageformats目录下有qicod4.dll和qico4.dll。


上一篇:使用QTableView
下一篇:c&c++基础