我一直在玩Qt幾個月了。我通過編碼和重新創建各種版本的代碼來教我自己; QML,XML,C++,Gui。Qt信號和插槽xml
這種方法給了我很多見解。 但我被卡住了,下面的代碼主要是在xml中完成的。但我無法讓我的信號和插槽工作。一切看起來都很好,我想我錯過了一些東西。
<ui version="4.0">
<class>enTry1</class>
<widget class="QMainWindow" name="enTry1">
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>500</width>
<height>200</height>
</rect>
</property>
<property name="windowTitle">
<string>All xml signals and slots example</string>
</property>
<widget class="QWidget" name="centralWidget">
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>70</x>
<y>75</y>
<width>75</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>Pushbutton</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_2">
<property name="geometry">
<rect>
<x>70</x>
<y>125</y>
<width>75</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>Pushbutton_2</string>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>80</x>
<y>40</y>
<width>46</width>
<height>13</height>
</rect>
</property>
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</widget>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>21</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>
<connection>
<sender>pushButton</sender>
<signal>clicked()</signal>
<receiver>enTry1</receiver>
<slot>button1pressed()</slot>
<hints>
<hint type="sourcelabel">
<x>113</x>
<y>138</y>
</hint>
<hint type="destinationlabel">
<x>207</x>
<y>136</y>
</hint>
</hints>
</connection>
<connection>
<sender>pushButton_2</sender>
<signal>clicked()</signal>
<receiver>enTry1</receiver>
<slot>button2pressed()</slot>
<hints>
<hint type="sourcelabel">
<x>127</x>
<y>199</y>
</hint>
<hint type="destinationlabel">
<x>206</x>
<y>183</y>
</hint>
</hints>
</connection>
</connections>
<slots>
<slot>button1pressed()</slot>
<slot>button2pressed()</slot>
</slots>
</ui>
要給出更多信息,當按下按鈕時,代碼只運行任何內容。錯誤說,
QObject::connect: No such slot QLabel::button1pressed() in ./ui_entry1.h:69
QObject::connect: (sender name: ‘pushButton’)
QObject::connect: (receiver name: ‘label’)
QObject::connect: No such slot enTry1::button2pressed() in ./ui_entry1.h:70
QObject::connect: (sender name: ‘pushButton_2’)
QObject::connect: (receiver name: ‘enTry1’)
任何建議......。
我會試試看,謝謝你的回覆。我很確定我確實知道ui自動生成代碼。那時我覺得那是令人沮喪的。從那以後,我一直把它作爲一個未解決的問題。我很抱歉遲到的回覆,並非常感謝你的幫助。 –