<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>body { line-height: 1.5; }blockquote { margin-top: 0px; margin-bottom: 0px; margin-left: 0.5em; }body { font-size: 10.5pt; font-family: 'Microsoft YaHei UI'; color: rgb(0, 0, 0); line-height: 1.5; }</style>
</head>
<body>
<div><span style="font-size: 10.5pt; line-height: 1.5; background-color: window;">I am not using the </span><span style="font-size: 10.5pt; line-height: 1.5; background-color: window;">official</span><span style="font-size: 10.5pt; line-height: 1.5; background-color: window;"> centos
 qt4 and pyqt4. I installed them by the unfolding the downloaded tar.gz packages and run by normal console. I found that this was the reason to cause the problem</span><span style="font-size: 10.5pt; line-height: 1.5; background-color: window;">. </span><span style="font-size: 10.5pt; line-height: 1.5; background-color: window;">Therefore,
 I used the make uninstall command to uninstall the unofficial qt4 and pyqt4 then reboot, and then make install pyqt4 again, </span><span style="font-size: 10.5pt; line-height: 1.5; background-color: window;">then the problem has solevd.  </span></div>
<div><span style="background-color: window; font-size: 10.5pt; line-height: 1.5;">Many thanks for your reminder.</span></div>
<div><br>
</div>
<blockquote style="margin-top: 0px; margin-bottom: 0px; margin-left: 0.5em;">
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<div style="PADDING-RIGHT: 8px; PADDING-LEFT: 8px; FONT-SIZE: 12px;FONT-FAMILY:tahoma;COLOR:#000000; BACKGROUND: #efefef; PADDING-BOTTOM: 8px; PADDING-TOP: 8px">
<div><b>From:</b> <a href="mailto:bazwal@gmail.com">Baz Walter</a></div>
<div><b>Date:</b> 2018-03-20 02:41</div>
<div><b>To:</b> <a href="mailto:pyqt@riverbankcomputing.com">pyqt</a></div>
<div><b>Subject:</b> Re: [PyQt] Question about the segmentation fault induced by uic.loadUiTyp</div>
</div>
</div>
<div>
<div>On 19/03/18 09:35, lzf neu wrote:</div>
<div>> The whole script that I referenced from the website is as follows:</div>
<div>> http://pythonforengineers.com/your-first-gui-app-with-python-and-pyqt/</div>
<div>> ######################################################</div>
<div>> #!/usr/bin/env python</div>
<div>> # -*- coding: utf-8 -*-</div>
<div>> </div>
<div>> import sys</div>
<div>> from PyQt4 import QtCore, QtGui, uic</div>
<div>> </div>
<div>> qtCreatorFile = "a.ui"  # a.ui is in my case</div>
<div>> </div>
<div>> Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile)</div>
<div>> </div>
<div>> class MyApp(QtGui.QMainWindow, Ui_MainWindow):</div>
<div>>      def __init__(self):</div>
<div>>          QtGui.QMainWindow.__init__(self)</div>
<div>>          Ui_MainWindow.__init__(self)</div>
<div>>          self.setupUi(self)</div>
<div>> </div>
<div>>      def CalculateTax(self):</div>
<div>>          price=int(self.price_box.toPlainText())</div>
<div>>          tax=(self.tax_rate.value())</div>
<div>>          total_price=price+((tax/100)*price)</div>
<div>>          total_price_string="The total price with tax is: " + str(total_price)</div>
<div>>          self.results_window.setText(total_price_string)</div>
<div>> </div>
<div>> if __name__ == "__main__":</div>
<div>>      app = QtGui.QApplication(sys.argv)</div>
<div>>      window = MyApp()</div>
<div>>      window.show()</div>
<div>>      self.calc_tax_button.clicked.connect(self.CalculateTax)</div>
<div>>      sys.exit(app.exec_())</div>
<div>> ###########################################################</div>
<div>> </div>
<div>> I run the whole example script and the terminal still shows:  Segmentation fault (core dumped)</div>
<div>> </div>
<div>> Then I run the script line by line and found that the error occured at the line:  Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile)</div>
<div> </div>
<div>The only thing wrong with that script is the line that attempts to make </div>
<div>a signal/slot connection. That will obviously raise a NameError because </div>
<div>self is not defined in that scope. So it needs to go in the __init__ </div>
<div>method of the MyApp class.</div>
<div> </div>
<div>When I fix that, the script runs perfectly fine for me (using qt 4.8.7 </div>
<div>and pyqt 4.12.1, with either python 3.6.4 or python 2.7.14). Contrary to </div>
<div>what others have said, it is not necessary to create a QApplication </div>
<div>before calling uic.loadUiType. All that does is use exec to load a </div>
<div>module and return a class object - it does not create an instance of </div>
<div>anything.</div>
<div> </div>
<div>Are you using the *official* CentOS qt4, pyqt4 and python2 packages? Or </div>
<div>did you install some or all of them in some other way? And how exactly </div>
<div>are you running the script? Are you doing it via some kind of IDE, or </div>
<div>just using a normal console?</div>
<div>_______________________________________________</div>
<div>PyQt mailing list    PyQt@riverbankcomputing.com</div>
<div>https://www.riverbankcomputing.com/mailman/listinfo/pyqt</div>
</div>
</blockquote>
</body>
</html>