小编For*_*ntr的帖子

Android:蓝牙UUID如何工作?

我不明白蓝牙UUID是什么意思.UUID是否表示协议(例如RFCOMM)?如果是这样,为什么这些createRfcommSocketToServiceRecord()方法需要UUID,当他们在名字中指定rfcomm时?为什么BluetoothChat示例代码有一个看似随意的,硬编码的UUID?

我的问题出现了,因为,根据这个问题,当运行4.0.4的设备尝试使用反射连接(到外部的,非Android设备)时,我得到一个空指针异常.但是,该问题的解决方案对我不起作用.UUID muuid = device.getUuids()[0].getUuid();提出异常.

编辑:我已经通过根据此答案(使用UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");)硬编码串行端口服务的UUID解决了这个问题.

我更加困惑的是为什么我需要提供一个UUID来创建一个不安全的rfcomm套接字,createInsecureRfcommSocketToServiceRecord(),但不使用反射方法.

任何人都可以理顺我吗?

uuid android bluetooth rfcomm

74
推荐指数
4
解决办法
9万
查看次数

Pyside:在运行时修改小部件颜色而不覆盖样式表.

我的情况:我有一个设有样式表的小部件.该样式表可能包含也可能不包括颜色设置.我想改变小部件的颜色,但我不能这样做widget.setStyleSheet("QWidget {background-color: %s}"% colour),因为它取代了现有的样式表,我不想这样做.

我的问题:在不删除小部件样式表的情况下,更改小部件(背景,在我的情况下)颜色的正确方法是什么?有没有比解析和附加到样式表更好的方法?

例:

在下面的代码中,我如何更改颜色box(想象盒子的颜色必须动态改变;例如,当盒子包含偶数个项目时盒子是红色的,当数字是奇数时盒子是绿色的)?

import sys
from PySide import QtGui, QtCore

class Example(QtGui.QWidget):

    def __init__(self):
        super(Example, self).__init__()

        self.initUI()

    def initUI(self):
        box = QtGui.QComboBox(self)
        box.resize(box.sizeHint())
        box.setStyleSheet("""
QComboBox::drop-down {border-width: 0px;}
QComboBox::down-arrow {image: url(noimg); border-width: 0px;}
""")
        box.move(50, 50)

        #Using the palette doesn't work:
        pal = box.palette()
        pal.setColor(box.backgroundRole(), QtCore.Qt.red)
        box.setAutoFillBackground(True)
        box.setPalette(pal)

        self.setGeometry(300, 300, 250, 150)
        self.show()


if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

使用盒子的托盘不起作用,大概是根据方法的这个警告autoFillBackground:

警告:谨慎使用此属性与Qt样式表一起使用.当窗口小部件具有带有效背景或边框图像的样式表时,将自动禁用此属性.

python qt pyside qtstylesheets

5
推荐指数
1
解决办法
2314
查看次数

标签 统计

android ×1

bluetooth ×1

pyside ×1

python ×1

qt ×1

qtstylesheets ×1

rfcomm ×1

uuid ×1