浅尝pyqt(2)

站在巨人的肩膀上, 学了一点, 分享一下...

a) connect

s.connect(w, SIGNAL("signalSignature"), functionName)
s.connect(w, SIGNAL("signalSignature"), instance.methodName)
s.connect(w, SIGNAL("signalSignature"), instance, SLOT("slotSignature"))

功能简单的来说就是当w收到SIGNAL("signalSignature")信号是就执行后面的部分。signalSignature与slotSignature需要有相同的参数。


b)QGridLayout

比起QHBoxLayout(水平布局)和QVBoxLayout(垂直布局),我更喜欢用QGridLayout(方格布局), 更方便设计布局。

i)addWidget(w, r, c): 在r行c列添加一个固件w;

ii)addWidget(w, r, c, l, h): 在r行c列添加一个固件w,而且长l宽h;

iii)addLayout(l, r, c): 在r行c列添加一个布局;相同的,添加多两个参数之后与上面的类似;

P.S 这里的方格并不是严格意义上的一个一个方格,他会根据当前的固件和布局来划分所谓的方格行列。


c)QListWidget

展示字符串的固件


addItem(QString): 添加一项;

addItems(list): 添加多项;

count(): 字符串数;

takeItem(r): 删除第r项,r从0开始;

item(r): 第r项,返回的是QListWidgetItem类型, 而且可以修改值;

item(r).text(): 返回第r项的QString值;

item(r).setText(QString): 修改第r项的值;

currentItem(): 当前项,同样返回的是QListWidgetItem类型;

currentRow(): 返回当前行(int), 即第几项。

……(其实还有很多方法,不过本人懂的不多)


d)emit

emit(SINGAL, ...) 传递一个信号及若干参数

class MyDialog(QDialog):
    ......
    def accept(self)
        self.emit(SIGNAL("signalSignature"), 1, 2)

def display(x, y):
    print x + y

if __name__ == "__main__":
    dialog = MyDialog()
    dialog.connect(dialog, SIGNAL("signalSignature"), display)
结果显然就是输出3了。我也不会很会表达,平时也就这样组合着用。


先水到这里吧……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值