1. 程式人生 > >QT 使用雜記

QT 使用雜記

QT

1.QString 的 字符編碼轉換函數是引用取值,如:toLocal8Bit(),不能使用返回的臨時對象進行操作,否則,如果不進行新對象保存,此臨時對象會在本行代碼執行結束後自行銷毀,導致後續代碼使用出錯。

    QString only_a_test = "imya kb";
    const char * will_error = only_a_test.toLocal8Bit().constData();   // 這行執行完,will_error變量將是不確定的值。

如果需要使用,需要保存新定義 QByteArray 變量,用於保存 toLocal8Bit(),返回的臨時對象,才能用於後續代碼的使用。

QString only_a_test = "imya kb";
QByteArray new_save_str = only_a_test.toLocal8Bit();
const char * it_is_right = new_save_str.constData();

2.QToolBar 的 中的action ,按鈕,stylesheet 設置:格式:QToolBar QToolButton{...}
QToolBar 間接繼承於 QWidget ,所以QToolBar本質上是一個 QWidget,如果只使用 QToolBar{...} 進行stylesheet 設置,是不能作用到 QToolBar 中的 action 上的,這一點 QT文檔裏我沒翻著,不知道QT咋想的,或者是我沒找到,有誰知道QT文件哪裏有,可以告訴我。

來個例子:

        "QToolBar{background-color:rgb(39, 39, 39); color:rgb(204, 204, 204);}"
        "QToolBar QToolButton{background:rgb(39, 39, 39); color:rgb(204, 204, 204);}"   /*這個就是控制 action的設置*/
        "QToolBar QToolButton:hover{background-color:rgb(83, 83, 83);}"
        "QToolBar QToolButton:checked{background-color:rgb(83, 83, 83);}"
        "QToolBar QLabel{background-color:rgb(39, 39, 39);}"  /**/

3.

QT 使用雜記