我正在开发一个只接受url作为输入的pyform控件。在
为了实现这一点,我从ControlText
派生了我的类,并添加了一个keypress事件处理程序,它根据正则表达式测试当前值。在
现在我想根据style.css
中所示的变量改变控件的外观。在
控件.py
import pyforms
from pyforms.Controls import ControlText
import re
class ControlUrl(ControlText):
def __init__(self, label="", default=None, helptext=None, regex="^((https?:)?\/\/)?(\w+(:\w+)?@)?(((([a-zA-Z\d]{1,2}|[a-zA-Z\d][\w\-]{0,62}[a-zA-Z\d])\.){1,}[\w\-]{2,6})|(\d{1,3}(\.\d{1,3}){3})|([\d:]{2,39}))(:\d{2,6})?(\/[\w.~!+,*:@%-]+)*\/?(\?([\w.~!+%,*:@-]+(=[\w.~!+%,*:@-]+)?)(&[\w.~!+%,*:@-]+(=[\w.~!+%,*:@-]+)?)*)?(#[\w.~!+%,*:@-])?$"):
self._regex = regex
super(ControlUrl, self).__init__(label, default, helptext)
def init_form(self):
self._pattern = re.compile(self._regex)
self.key_pressed_event = self.__key_pressed
super(ControlUrl, self).init_form()
def __key_pressed(self, event):
is_url = self._pattern.search(self.value) != None
self.valid = is_url
样式表
^{pr2}$我宁愿用css解决它,但每一个解决方案都值得赞赏。在
动态样式基于
QPropertys
,可以用setProperty
设置,css选择器看起来像[propertyname=propertyvalue]
代码:
Css:
^{pr2}$更多信息:
相关问题 更多 >
编程相关推荐