Hello World / plɹoM ollǝH

Programmers Live in Vain

PySide1と2でQScrollArea::wheelEventの動作が若干違う

違うんじゃあああああああああああああああああぁぁぁぁあああばばばっばばばば # from PySide2.QtWidgets import * from PySide.QtGui import * import sys app = QApplication(sys.argv) class MyWidget(QWidget): def wheelEvent(self, event): print('ho…

QTimer.singleShotをサブスレッドで使うには

呼び出しスレッド側でexec関数をよんでイベントループを開始せよ QTimer Class | Qt 4.8 In multithreaded applications, you can use QTimer in any thread that has an event loop. To start an event loop from a non-GUI thread, use QThread::exec(). Q…

PySide2 ビルドしてみる

ここ見たら大体書いてあるよ https://wiki.qt.io/PySide2_GettingStarted PySide2最新の状況はこのへんをチェック https://bugreports.qt.io/projects/PYSIDE https://gitter.im/PySide/pyside2 環境 Windows10 Python 3.6 (64bit) Qt 5.6 OpenSSLは使わない…

PySide Custom Dialog

Dialogを自分で実装するときのポイント QDialogを継承する ボタン表示にはQDialogButtonBoxを使う こんなかんじ from PySide import QtCore, QtGui import sys class CustomDialog(QtGui.QDialog): def __init__(self): super().__init__() self._buttons = …

ねんがんの GPD Pocket をてにいれたぞ

とりあえず一台ゲットしたので適当レビュー 使っているうちに意見をコロコロ変える可能性あります スペックおさらい OS Ubuntu 16.04 LTS or Windows 10 Home CPU Quad-core 1.6GHz GPU Integrated processor RAM 8GB ストレージ容量 128GB ( Samsung MDGAG…

PySide 編集可能なQTreeWidgetを作る

import sys from PySide import QtCore, QtGui class MyTreeWidget(QtGui.QTreeWidget): def __init__(self): super().__init__() self.setHeaderHidden(True) self.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.customContextMenuRequested.con…

PySide movable and resizable widget without frame

import sys, enum from PySide import QtCore, QtGui class Item(QtGui.QLabel): Manipilate = enum.Enum('Manipilate', 'none move resize_l resize_r') def __init__(self, text): super().__init__(text) self.setStyleSheet('background-color: white; b…

PySide Progressbarを表示してみる

QProgressDialogを使うと一番簡単であります import sys from PySide import QtGui app = QtGui.QApplication(sys.argv) prog = QtGui.QProgressDialog('何か処理しています...', 'キャンセル', 0, 100, None, 0) prog.show() prog.setValue(50) sys.exit(ap…

QScrollAreaに固定されたヘッダーを表示する

import sys from PySide import QtGui class MyTable(QtGui.QWidget): def __init__(self): super().__init__() lo = QtGui.QHBoxLayout() lo.setContentsMargins(0, 0, 0, 0) lo.setSpacing(0) self.setLayout(lo) self._header = QtGui.QLabel('header') s…

PySide ドラッグでデータ受け渡し

import sys from PySide import QtCore, QtGui # ドラッグ&ドロップで色を受け渡す class WidgetItem(QtGui.QLabel): def __init__(self, color): super().__init__('') self._color = color self.setStyleSheet('border: 1px solid black;') self.setFixed…

PySide ドラッグでWidgetを移動させる

import sys from PySide import QtCore, QtGui # ドラッグで動くWidget class WidgetItem(QtGui.QLabel): def __init__(self): super().__init__('') self.setStyleSheet('border: 1px solid black; background-color: red;') self.setFixedSize(32, 32) sel…

Pythonゲームプログラミング #9 スクロール

gist消してしまったので 代わりにこのリポジトリを参考にしてください #0 環境構築 #1 メインループ #2 画像表示 #3 アニメーション #4 キー入力 #5 サウンド #6 衝突判定 #7 ステートマシン #8 マップチップ #9 スクロール スクロール pygameを使ったゲーム…

Pythonゲームプログラミング #8 マップチップ

gist消してしまったので 代わりにこのリポジトリを参考にしてください #0 環境構築 #1 メインループ #2 画像表示 #3 アニメーション #4 キー入力 #5 サウンド #6 衝突判定 #7 ステートマシン #8 マップチップ #9 スクロール マップチップ pygameを使ったゲー…

Pythonゲームプログラミング #7 ステートマシン

gist消してしまったので 代わりにこのリポジトリを参考にしてください #0 環境構築 #1 メインループ #2 画像表示 #3 アニメーション #4 キー入力 #5 サウンド #6 衝突判定 #7 ステートマシン #8 マップチップ #9 スクロール ステートマシン pygameを使ったゲ…

Pythonゲームプログラミング #6 衝突判定

gist消してしまったので 代わりにこのリポジトリを参考にしてください #0 環境構築 #1 メインループ #2 画像表示 #3 アニメーション #4 キー入力 #5 サウンド #6 衝突判定 #7 ステートマシン #8 マップチップ #9 スクロール 衝突判定 pygameを使ったゲームプ…

Pythonゲームプログラミング #5 サウンド

gist消してしまったので 代わりにこのリポジトリを参考にしてください #0 環境構築 #1 メインループ #2 画像表示 #3 アニメーション #4 キー入力 #5 サウンド #6 衝突判定 #7 ステートマシン #8 マップチップ #9 スクロール サウンド pygameを使ったゲームプ…

Pythonゲームプログラミング #4 キー入力

gist消してしまったので 代わりにこのリポジトリを参考にしてください #0 環境構築 #1 メインループ #2 画像表示 #3 アニメーション #4 キー入力 #5 サウンド #6 衝突判定 #7 ステートマシン #8 マップチップ #9 スクロール キー入力 pygameを使ったゲームプ…

Pythonゲームプログラミング #3 アニメーション

gist消してしまったので 代わりにこのリポジトリを参考にしてください #0 環境構築 #1 メインループ #2 画像表示 #3 アニメーション #4 キー入力 #5 サウンド #6 衝突判定 #7 ステートマシン #8 マップチップ #9 スクロール アニメーション pygameを使ったゲ…

Pythonゲームプログラミング #2 画像表示

gist消してしまったので 代わりにこのリポジトリを参考にしてください #0 環境構築 #1 メインループ #2 画像表示 #3 アニメーション #4 キー入力 #5 サウンド #6 衝突判定 #7 ステートマシン #8 マップチップ #9 スクロール 画像表示 pygameを使ったゲームプ…

Pythonゲームプログラミング #1 メインループ

gist消してしまったので 代わりにこのリポジトリを参考にしてください #0 環境構築 #1 メインループ #2 画像表示 #3 アニメーション #4 キー入力 #5 サウンド #6 衝突判定 #7 ステートマシン #8 マップチップ #9 スクロール メインループ pygameを使ったゲー…

Pythonゲームプログラミング #0 環境構築

#0 環境構築 #1 メインループ #2 画像表示 #3 アニメーション #4 キー入力 #5 サウンド #6 衝突判定 #7 ステートマシン #8 マップチップ #9 スクロール 環境構築 pygameを使ったゲームプログラミングについて説明していきます。 Windows10 Python3.6.1 pygam…

PySide: Asynchronously Text Filtering

QThreadを使った非同期テキストフィルタ ほしいもの 別スレッドで実行されるテキストフィルタ 一定時間ごとにフィルタリング済みのデータを返す 途中でキャンセルもしたい コード from PySide import QtCore, QtGui import datetime import time class Filte…

PySide: Save and Restore QDockWidgets

Dockの生成削除込みでQSettings保存 適当に調べた QSettingsを使用してWidgetの位置やサイズを保存できる 復元する前にWidgetを生成してobjectNameを設定しておく必要がある DockWidgetを追加・削除できるプログラムではその状況も保存する必要がある QMainW…

PySide: Suppress the clicked signal when emitting a contextMenuRequested signal

右クリックでコンテキストメニューを出すときに一緒にclickedシグナルが発信されると困るケースがあった。mousePressEventとmouseReleaseEventを継承して左クリックのみに反応するようにしてこれを回避した from PySide import QtGui, QtCore import sys cla…

PySide リソース一覧の取得

qrcファイルの中身がこんな感じだったら <RCC version="1.0"> <qresource> <file>folder/hogehoge.txt</file> <file>folder/fugafuga.bin</file> <file>folder/piyopiyo.jpg</file> </qresource> </RCC> こんな感じでpyに変換すると思うのですが pyside-rcc -o resource.py -py3 resource.qrc こんな感じで一覧を取得できます from PySide import QtCo…

QTreeWidgetItemでアイコン複数表示

HTMLを表示するdelegateを用意するのが手っ取り早い コードはここらへんを参考に stackoverflow.com PyQt版の回答をゴニョゴニョして作成 import sys from PySide import QtCore, QtGui class RichTextDelegate(QtGui.QStyledItemDelegate): def paint(self,…

Raspberry Piでトイレにクラシック音楽を流す

人がきたら音楽を流す装置をトイレに設置しました(割と好評) ケースはRaspberry Piの箱に100均で買った折り紙を貼って作成 本体のUSBでBluetoothスピーカーを充電 必要なもの Raspberry Pi 3 Model B SDカード 電源アダプター 人感センサー Bluetoothスピ…

Haskell環境構築メモ

これは自分のためのメモだから良い子は見ちゃダメ OS: Windows10, IDE: Atom インストール 1. Haskell PlatformからインストーラをDLして実行 www.haskell.org 適当にNext押してたら%APPDATA%\local\binにインストールされてパスが通った stackのセットアッ…

Python3でSkypeにメッセージ送信

skpyを使います 準備 pip install skpy 最近のイベントからグループチャットを検索してメッセージ送信 from skpy import Skype def send(user, password, topic, message): sk = Skype(user, password) for c in sk.chats.recent(): chat = sk.chats[c] if h…

PySide ドラッグ&ドロップ

忘れがちなポイント setAcceptDrops(True) 各イベントでevent.accept ファイルパスはTextじゃなくてURL from PySide import QtCore, QtGui import sys, os class DragAndDrop(QtGui.QLabel): def __init__(self): super().__init__() self.setText('Drag and…