就是不喜歡Python
又睡不著了,好吧,來玩玩看PyQt好了。 其實在這之前我也玩過比如說: - Qt Jambi(可愛煎餅) - Ruby qtbindings QtLua不算是因為它比較像是腳本引擎。用來寫程式我覺得lqt會比較好,雖然我之前都沒編譯成功…
不喜歡的原因就是…太習慣C++了。 我覺得限制語法風格這件事很該死,雖然它的確大大的減少問題,也許吧? 其實我覺得程式會出錯,和free style沒太大的關係,唯一著名的也只有單行條件式/迴圈而已。
for(int i = 0; i < length; i++)
dosomething();
while(i.hasNext())
std::cout << i.next();
我是不否認free style會讓新手寫出醜到爆的程式碼。 我最近去學Java,發現某些隔壁的人才完全不用tab,我看得要哭出來。 但我得說,真的寫出這東西出來,我會先懷疑對方是否有學程式的才能。
第二個就是self。
要怎麼說呢,Python不用先宣告變數,某方面來說這很方便。
嘛,想要成員變數時馬上加一個就好,只可惜我習慣…
反正我就是看self滿天飄會非常不舒服,就和我寧可成員變數要加m_也不用this是一樣的。
你可以說lua也是要用到self,不過以我目前的用法,很難看到它啦。
第三個,不過不算太重要。 為什麼我非得打一堆底線?
順便附上今天打的。
import sys
from PyQt5.QtWidgets import QWidget, QApplication, QPushButton, QVBoxLayout
class Widget(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle("Hello PyQt")
quitBtn = QPushButton("&Quit")
quitBtn.clicked.connect(self.close)
mainlayout = QVBoxLayout()
mainlayout.addWidget(quitBtn)
self.setLayout(mainlayout)
if __name__ == '__main__':
app = QApplication(sys.argv)
w = Widget()
w.show()
sys.exit(app.exec_())
也許PyQt比較好的地是使用比較現代化的connect方式。 嘛,煎餅那邊也是那樣用。 這樣的方式:[物件].[signal].connect([物件].[slot])當然是比較直覺,也比較簡單。 也許我該考慮讓QtLua也支援這個,原本它提供的語法就是Qt上用的,是很習慣,但和這個比起來就是比較不方便。