You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

713 lines
20 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?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>1190</width>
<height>923</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>16</pointsize>
</font>
</property>
<property name="windowTitle">
<string>计算思维24点</string>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<widget class="QWidget" name="centralwidget">
<property name="styleSheet">
<string notr="true"/>
</property>
<layout class="QVBoxLayout" name="verticalLayout" stretch="3,0,5">
<item>
<widget class="QFrame" name="frame">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QWidget" name="horizontalLayoutWidget">
<property name="geometry">
<rect>
<x>40</x>
<y>10</y>
<width>651</width>
<height>222</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="p4">
<property name="minimumSize">
<size>
<width>148</width>
<height>220</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>148</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="p3">
<property name="minimumSize">
<size>
<width>148</width>
<height>220</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>148</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="p2">
<property name="minimumSize">
<size>
<width>148</width>
<height>220</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>148</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="p1">
<property name="minimumSize">
<size>
<width>148</width>
<height>220</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>148</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QLineEdit" name="lineEdit">
<property name="geometry">
<rect>
<x>40</x>
<y>230</y>
<width>821</width>
<height>31</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="label_result">
<property name="geometry">
<rect>
<x>880</x>
<y>230</y>
<width>141</width>
<height>31</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">background-color:rgb(74, 203, 105)</string>
</property>
<property name="text">
<string> = </string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
<widget class="QLabel" name="label_TF">
<property name="geometry">
<rect>
<x>1030</x>
<y>230</y>
<width>31</width>
<height>31</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">background-color:rgb(219, 205, 166)</string>
</property>
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>1080</x>
<y>220</y>
<width>81</width>
<height>51</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>16</pointsize>
<bold>true</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string>计算</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_q">
<property name="geometry">
<rect>
<x>950</x>
<y>50</y>
<width>151</width>
<height>51</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>16</pointsize>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>出题</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_ex">
<property name="geometry">
<rect>
<x>950</x>
<y>130</y>
<width>151</width>
<height>51</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>16</pointsize>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>换牌</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_autosv">
<property name="geometry">
<rect>
<x>40</x>
<y>270</y>
<width>141</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>16</pointsize>
<bold>true</bold>
</font>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;自动根据牌面计算一个24点的表达式并且画出语法树。&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>自动求解</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_dtree">
<property name="geometry">
<rect>
<x>200</x>
<y>270</y>
<width>141</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>16</pointsize>
<bold>true</bold>
</font>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;根据表达式画出对应的语法树。&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>画树</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_allan">
<property name="geometry">
<rect>
<x>360</x>
<y>270</y>
<width>141</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>16</pointsize>
<bold>true</bold>
</font>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;可以多次点击切换所有符合要求的表达式,并同步画出语法树。&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>所有答案</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_exp">
<property name="geometry">
<rect>
<x>520</x>
<y>270</y>
<width>141</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>16</pointsize>
<bold>true</bold>
</font>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;从语法树生成表达式。&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>生成表达式</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_ast">
<property name="geometry">
<rect>
<x>690</x>
<y>270</y>
<width>141</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>16</pointsize>
<bold>true</bold>
</font>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;从表达式生成语法树。&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>生成语法树</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_9">
<property name="geometry">
<rect>
<x>860</x>
<y>270</y>
<width>141</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>16</pointsize>
<bold>true</bold>
</font>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;检查表达式和语法树是否等效。&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>一致性检查</string>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>760</x>
<y>170</y>
<width>101</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>已选牌面</string>
</property>
</widget>
<widget class="QPushButton" name="p1_selected">
<property name="geometry">
<rect>
<x>750</x>
<y>20</y>
<width>100</width>
<height>150</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>150</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>100</width>
<height>150</height>
</size>
</property>
<property name="text">
<string/>
</property>
</widget>
</widget>
</item>
<item>
<widget class="Line" name="line">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QFrame" name="frame_2">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QGraphicsView" name="graphicsView">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1000</width>
<height>541</height>
</rect>
</property>
</widget>
<widget class="QPushButton" name="pushButton_add">
<property name="geometry">
<rect>
<x>1040</x>
<y>120</y>
<width>41</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>24</pointsize>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string>+</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_sub">
<property name="geometry">
<rect>
<x>1090</x>
<y>120</y>
<width>41</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>24</pointsize>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string>-</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_div">
<property name="geometry">
<rect>
<x>1090</x>
<y>170</y>
<width>41</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>24</pointsize>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string>/</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_mul">
<property name="geometry">
<rect>
<x>1040</x>
<y>170</y>
<width>41</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>24</pointsize>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string>*</string>
</property>
</widget>
<widget class="QPushButton" name="add_ops_node">
<property name="geometry">
<rect>
<x>1020</x>
<y>220</y>
<width>141</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>14</pointsize>
<bold>false</bold>
</font>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;在左侧语法树区域选择两个叶子节点后,选择好要添加的运算符后,可以添加运算符并组成新的语法树。&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>添加运算节点</string>
</property>
</widget>
<widget class="QPushButton" name="add_val_node">
<property name="geometry">
<rect>
<x>1020</x>
<y>270</y>
<width>141</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>14</pointsize>
<bold>false</bold>
</font>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;根据已选牌面的值,向左侧区域添加一个数值节点。&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>添加数值节点</string>
</property>
</widget>
<widget class="QPushButton" name="ex_node_value">
<property name="geometry">
<rect>
<x>1020</x>
<y>320</y>
<width>141</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>14</pointsize>
<bold>false</bold>
</font>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;修改数值节点的值,将语法树中选中的数值节点的值修改为已选牌面的值。&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>改变运算输入</string>
</property>
</widget>
<widget class="QPushButton" name="ex_node_ops">
<property name="geometry">
<rect>
<x>1020</x>
<y>370</y>
<width>141</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>14</pointsize>
<bold>false</bold>
</font>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;根据已选运算符,修改已选语法树中运算符节点的值。&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>改变节点运算</string>
</property>
</widget>
<widget class="QPushButton" name="ex_node_self">
<property name="geometry">
<rect>
<x>1020</x>
<y>420</y>
<width>141</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>14</pointsize>
<bold>false</bold>
</font>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;交换语法树中两个已选的数值节点。&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>数值节点交换</string>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>1030</x>
<y>70</y>
<width>121</width>
<height>41</height>
</rect>
</property>
<property name="text">
<string>已选运算符</string>
</property>
</widget>
<widget class="QLabel" name="lb_ops_selected">
<property name="geometry">
<rect>
<x>1060</x>
<y>10</y>
<width>53</width>
<height>51</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>18</pointsize>
<bold>true</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color:rgb(255, 255, 255)</string>
</property>
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
<widget class="QPushButton" name="clear_button">
<property name="geometry">
<rect>
<x>1020</x>
<y>470</y>
<width>141</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>14</pointsize>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>清空画布</string>
</property>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1190</width>
<height>33</height>
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>