『壹』 qt界面顯示內容相同
問題描述:
QT中使用ui設計時設計出的界面顯示後效果不一致
(如果ui界面所在類繼承於QWidget似乎顯示正常,但是如果繼承的是其它自定義類可能出現顯示不一致的問題攔沖耐,在網上找到說使用窗體布局(form)可以解決,但試過沒效果)
問題解決
可以先嘗試更換父類,如果無法更換父類似乎只能硬改了,直到達到想要的效果
1.控制項尺寸不一致:簡春如果界面尺寸已經固定(ui->setFixedSize(xx,xx)),在ui設計界面更改最小值最小值就行,使得最大最小值一致
2.GroupBox標題顯示(ui設計時標題居左但顯示時標題未居左顯示):構造函數加上ui->GroupBox->setStyleSheet(「QGroupBox::title {subcontrol-position: top left;}」);
3.控制項邊距過大或過小:ui->gridLayout_3->setSpacing(0);(gridLayout_3為窗口總體布局)或者在ui設計界面總體設置各個部件布局與間隔
qt
QT creator的ui界面和實際運行出來的界面不一致判態
8469閱讀·7評論·4點贊
『貳』 求Qt Creator 界面的源代碼
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<枝培class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>516</width>伏搭皮
<height>330</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralWidget">
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>90</x>
<y>40</y>
<width>111</width>
<height>51</height>
</rect>
</property>
<property name="text">
<string>PushButton</string>
</property>
</widget>
<widget class="QComboBox" name="comboBox">
<property name="geometry">
<rect>
<x>90</x>
<y>120</y>
<width>121</width>
<height>31</height>
</rect>缺差
</property>
</widget>
<widget class="QLineEdit" name="lineEdit">
<property name="geometry">
<rect>
<x>90</x>
<y>180</y>
<width>101</width>
<height>27</height>
</rect>
</property>
</widget>
</widget>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>516</width>
<height>23</height>
</rect>
</property>
</widget>
<widget class="QToolBar" name="mainToolBar">
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
</widget>
<widget class="QStatusBar" name="statusBar"/>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>
『叄』 Qt如何設置界面風格
設置方法:
每個widget都可以設置風格
setStyle(QStyle style)
對QApplication設置QStyle即對所有
QApplication::setStyle(QStyleFactory::create("Fusion"));
其他widget如過沒有被設置QStyle,默認使用QApplication的
QStyle主要可重寫介面
繪制復雜控制項
virtual void drawComplexControl(ComplexControl control, const QStyleOptionComplex * option, QPainter * painter, const QWidget * widget = 0) const = 0
繪制一般控制項
virtual void drawControl(ControlElement element, const QStyleOption * option, QPainter * painter, const QWidget * widget = 0) const = 0
繪制最基礎的控制項(小箭頭什麼的)
virtual void drawPrimitive(PrimitiveElement element, const QStyleOption * option, QPainter * painter, const QWidget * widget = 0) const = 0
所有這些介面的參數都類似
第一個為QStyle類中定義的枚舉值,晌大大具體參考Qt文檔,表示你要修改的控制項類型
後面幾個顧名思義好了
獲得當前平台支持的原有的QStyle
自定義QStyle
可以重寫已有的QStyle稍微修改下
也可以繼承一個,一般繼承於QProxyStyle,或者QCommonStyle
將自定義的style做成宴豎插件供其他人使用
Qt style sheet qss的使用
使用.qss 文件
如果一個Qt style sheet被激活,則它會對widget的style進行封裝
這是一個類似css的東西
子widget也會被修改
可以對整個app應用一個樣式,然後對某個控制項指定某個樣式
這是一個優先順序別最高的樣式配置,會覆蓋QStyle,或者說包裝QStyle
QStyle和qss的區別
QStyle是可以重寫畫控制項的,你可以重新設置畫刷畫線,當然也你可以只是設置背景顏色。例如,checkbox,原來是打鉤的,現在改成深色
qss 改的相對表面一點,修改背景顏色 背景圖片什麼的
一個改骨頭一個改皮
可在QtDesigner里更改樣式表
『肆』 在linux上使用qt進行界面開發時如何引用xwindow的
先創建一個QWidget對象。
1、在Qt程序中創建一個QWidget對象,並調用其show()函檔鍵數以顯激枯示窗口。
2、調用QWidget對象明蠢洞的winId()函數獲取窗口句柄(即窗口ID號)。
3、使用XOpenDisplay()函數打開與XServer的連接。
4、使用XCreateSimpleWindow()函數創建一個XWindow,並設置其屬性和事件響應函數等。
5、使用XMapWindow()函數將新創建的窗口映射到屏幕上。
6、使用XFlush()函數刷新緩沖區並發送請求給XServer。
『伍』 qt的unicode宏定義在哪
Qt是一個跨平台的C++圖形用戶界面(GUI)庫。Qt提供了一個統一的編碼方案,即Unicode編碼。Unicode編碼是虛差局一種跨平台的字元編碼方案,它可以表示世界上所有的文字。Qt在源代碼中提供了一個宏定義,即UNICODE宏,用於指定程序使用的編碼方式。如果在編譯時定義了UNICODE宏,那麼程序將使用Unicode編碼方式來進行編碼,如果沒有定義,那麼程序將慶塵使用平台默認的編碼方式。通常來說,UNICODE宏定義位於Qt的頭文件中,例如qglobal.h文件。您可以通過查看該差讓文件來了解具體的定義方式。
『陸』 qt5.5怎麼設置顯示左側源碼頭文件列表
qt5.5怎麼設置顯示左側源碼頭文件列表
這個是mainwindow.ui的創建文件來的,mainwindow.ui界面上的都是 ui_mainwindow.h在控制的,在項目里是不顯示這個頭文件的,這個不用打開啊,你想用mainwindow.ui界面的控制項,那你直接包含:ui_mainwindow.h就可以了。
直接原因是,你的模晌好型中可能使用了中文字元。有些情況下,模型中的確沒有直接使用到中文字元,但如果Windows用戶名是中文的,宴培鉛由於保存模中物型文件時會自動保存版本信息(例如誰創建、誰最後修改),也會導致模型中加入了中文字元。
『柒』 怎麼讓qt背景覆蓋全部界面
關於怎麼讓qt背景覆蓋全部界面相關資料如下
1.Qss 的setStyleSheet設圓清旁置背景圖片
1.1background-image設置平鋪或者居中
這種方法設置的要點是要將圖片添加到qrc文件中,形成資源路徑,然後在QT界面編輯或者程序代碼中通過設置路徑來實現背景圖片設置。圖片大小不能自適應控制項大小。只能可以實現平正雀鋪或者居中顯示。background-position:center;設置顯示位置,background-repeat:no-repeat;設置是否平鋪;
(1)平鋪重復顯示
QWidget#widgetWinPic
{
background-image:url(:/FaceMatch/Resources/pic/viewbackin.png);
background-repeat:repeat;
}
或者代碼中ui.widgetWinPic.setStyleSheet("QPushButton{ background-image: url(:/FaceMatch/Resources/pic/viewbackin.png);background-repeat:repeat;");
(2)居中不重復設置
QWidget#widgetWinPic
{
background-image:url(:/FaceMatch/Resources/pic/viewbackin.png);
background-position:center;
background-repeat:no-repeat;
}
或者代碼中 ui.widgetWinPic.setStyleSheet("QPushButton{ background-image: url(:/FaceMatch/Resources/pic/viewbackin.png);background-position:center;background-repeat:no-repeat;");
1.2 border-image設置按照控制項大小縮放填充整個控制項
圖片被拉伸填滿整個橘橡控制項,可以實現縮放拉伸填充。會跟著控制項的大小變化進行縮放,下圖左側是正常尺寸,右側是放大後的樣子