#!/usr/bin/env python# -*- coding:utf-8 -*-import sys
from PyQt5 import uic
from PyQt5.QtWidgets import QMainWindow, QApplication, QWidgetAction, QAction, QToolButton
FORM_CLASS, _ = uic.loadUiType('./ui/main.ui')
class MainForm(QMainWindow, FORM_CLASS):
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.toolbar = self.addToolBar(u'툴바')
self._ac1 = QAction(u'액숀1', self)
self._ac1.triggered.connect(self._action_01)
self._ac2 = QAction(u'액숀2', self)
self._ac2.triggered.connect(self._action_02)
self._tb1 = QToolButton(self)
self._tb1.addAction(self._ac1)
self._tb1.addAction(self._ac2)
self._tb1.setPopupMode(QToolButton.InstantPopup)
self._tb1.setDefaultAction(self._ac1)
self.toolbar.addWidget(self._tb1)
def _action_01(self):
self._tb1.setDefaultAction(self._ac1)
def _action_02(self):
self._tb1.setDefaultAction(self._ac2)
if __name__ == '__main__':
app = QApplication(sys.argv)
w = MainForm()
w.show()
sys.exit(app.exec())
2018년 10월 25일 목요일
[PyQt5] QToolButton example
2018년 10월 17일 수요일
[QGIS3] geom to geometry
wkb = bytes.fromhex("010100000000000000000045400000000000001440")
g.fromWkb(wkb)
g.get().x()
42.0
g.get().y()
5.0
2018년 10월 16일 화요일
[QGIS3] 모든 레이어 조회
_layer = _temp.layer()
2018년 7월 9일 월요일
[Python] Python 에서 java 호출
#!/usr/bin/env python# -*- coding:utf-8 -*- import jpype if __name__ == '__main__': classpath = './jar/whoareyou.jar' jpype.startJVM(jpype.getDefaultJVMPath(), '-ea', "-Djava.class.path=%s" % classpath) WhoAreYou = jpype.JClass("kr.co.demo.WhoAreYou") obj = WhoAreYou() ret = obj.whatyourname('hello') print ret WhoAreYou2 = jpype.JPackage("kr").co.demo.WhoAreYou obj2 = WhoAreYou() ret = obj.whatyourname('world') print ret jpype.shutdownJVM()
2018년 6월 21일 목요일
python logging
import logging
logger = logging.getLogger('tornado.general')
logger.setLevel(logging.DEBUG)
formatter = logging.Formatter([%(levelname)s | %(asctime)s | %(filename):%(lineno)04s | %(message)s")
fileHandler = logging.handlers.RotatingFileHandler(filename='', maxBytes=1, backupCount=1)
fileHandler.setFormatter(formatter)
fileHandler.set_name('myname')
logger.addHandler(fileHandler)
logger = logging.getLogger('tornado.general')
hs = logger.handlers[:]
for x in hs:
if x.name == 'myname':
logger.handlers.remove(x)
2018년 6월 20일 수요일
python decode mime
import email
import base64
def decode_mime(_msg, _result=[]):
def _decode(msg, result):
if msg.is_multipart():
for item in msg.get_payload():
_decode(item, result)
else:
if 'content-type' in msg:
_content_type = msg['content-type']
if 'text/html' in _content_type:
decoded_text = base64.decodestring(msg.get_payload())
result.append(decoded_text)
_decode(_msg, _result)
decode_mime(email.message_from_string(_message), result=[])
python HTMLParser
from HTMLParser import HTMLParser
class MyHTMLParser(HTMLParser):
def __init__(self):
HTMLParser.__init(self)
self.result = list()
def handle_date(self, data):
if data is not None:
self.result.append(data)
obj = MyHTMLParser()
obj.feed(html)
print ' '.join(obj.result)
docker redmine 설치
docker-composer.yml version: '3.1' services: redmine: image: redmine restart: always container_na...
-
docker-composer.yml version: '3.1' services: redmine: image: redmine restart: always container_na...
-
import logging logger = logging.getLogger('tornado.general') logger.setLevel(logging.DEBUG) formatter = logging.Formatter([%(leve...
-
docker pull wurstmeister/kafka docker pull wurstmeister/zookeeper docker-compose.yml 생성 version: '2' services: zookeeper: imag...