web オープンのランチャをまた作る version 7
:追加された部分
:削除された部分
(差分が大きい場合、文字単位では表示しません)
web オープンのランチャをまた作る
# web オープンのランチャをまた作る
191028
- キーワードが直接アドレスの一部になってるサイトのページ
http://*********/*****/**=hoge
みたいなのを開くときのために、クリップ監視ソフトを自作してそこからクロームを起動するようにしてある
サイトの種類を自動判別するためにキーワード以外の文字列も含めてコピーして使う仕様だった
でも最近、キーワードのみでサイトを開きたいケースが増えてきた
- scieditor2 には文字列選択してクロームに投げる機能を実装してある
サイトのurlをテキストに書いておいて、hogeの部分にキーワードをコピペしてクロームに投げることで何とかしてたんだが、専用のソフトを作りたくなってきた
- 与えるのはキーワードだけで、どのサイトを開くかはボタンなどで選択することになる
・常駐のクリップアプリからクリップワードを引数にして呼ぶ
・ボタンの仕組みをどうするか??追加削除が自由なものにしたい
・スクリプト中にボタン名とアドレスをセットで書いてリスト化、ボタン名は動的に設定
・ボタンは全て一つの関数にコネクトして、その関数でボタンの文字列を取得して分岐させる
```
import sys,subprocess
from PyQt5.QtWidgets import QApplication,QWidget ,QMainWindow
import untitled
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.ui=untitled.Ui_MainWindow()
self.ui.setupUi(self)
args = sys.argv
if len(args) > 1 :
self.ui.lineEdit.setText(args[1])
buttons = [ self.ui.pushButton , self.ui.pushButton_2 , self.ui.pushButton_3 ,self.ui.pushButton_4,
self.ui.pushButton_5,self.ui.pushButton_6 , self.ui.pushButton_7 ,self.ui.pushButton_8,
self.ui.pushButton_9,self.ui.pushButton_10,self.ui.pushButton_11,self.ui.pushButton_12]
self.blist = [
( 'Google' , r'https://www.google.com/search?q={target}' ) , #
( 'hoge' , r'https://hoge/{target}/' ) , #
]
self.chrome = r'<fullpath>'
for i , l in enumerate( self.blist ) :
buttons[i].setText( l[0] )
buttons[i].clicked.connect( self.launchchrome )
def launchchrome( self ) :
title = self.sender().text()
i = 0
for i , l in enumerate( self.blist ) :
if title == l[0] :
break
target = self.ui.lineEdit.text()
url = self.blist[i][1].replace( '{target}' , target )
subprocess.Popen( ( self.chrome , url ) )
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
win = MainWindow()
win.show()
sys.exit(app.exec_())
```
---
191029
## URLlauncher 位置を保存する
- 位置を変えれないと不便なので
Qtのデフォルトのクラスを使ってみた
```
from QtCore import QSettings
def closeEvent (self,e) :
settings = QSettings("OsamuApp", "URLlauncer")
settings.setValue("geometry", self.saveGeometry())
def init(self) :# コード追加
try:
settings = QSettings("OsamuApp", "URLlauncer")
self.restoreGeometry( settings.value( "geometry" ) )
except :
self.setWindowTitle('fail--load setting')
```
- winではレジストリを使う
CURRENT_USER\\Software の下にエントリが作成されてた
レジストリを汚されるのが嫌で今まで使ってこなかったが、わざわざ設定ファイルを作らなくて良いので簡単で便利ではあります
linuxに移ってもこのコードのままで設定保存してくれるようなので良いかもしれない
- 保存は単純で良いが読込は初回起動時のことを常に考えなければならないのがやや面倒
ざっくりとtryでくくったがこれでいいのかな
ifでエラー回避するよりはtryを使うのが推奨らしいけどなあ
---
└──>[その他もろもろの開発日記](https://mimemo.io/m/p5be8G9RdeoWxkE)
web オープンのランチャをまた作る
191028
-
キーワードが直接アドレスの一部になってるサイトのページ
http://**//=hoge
みたいなのを開くときのために、クリップ監視ソフトを自作してそこからクロームを起動するようにしてある
サイトの種類を自動判別するためにキーワード以外の文字列も含めてコピーして使う仕様だった
でも最近、キーワードのみでサイトを開きたいケースが増えてきた -
scieditor2 には文字列選択してクロームに投げる機能を実装してある
サイトのurlをテキストに書いておいて、hogeの部分にキーワードをコピペしてクロームに投げることで何とかしてたんだが、専用のソフトを作りたくなってきた -
与えるのはキーワードだけで、どのサイトを開くかはボタンなどで選択することになる
・常駐のクリップアプリからクリップワードを引数にして呼ぶ
・ボタンの仕組みをどうするか??追加削除が自由なものにしたい
・スクリプト中にボタン名とアドレスをセットで書いてリスト化、ボタン名は動的に設定
・ボタンは全て一つの関数にコネクトして、その関数でボタンの文字列を取得して分岐させる
import sys,subprocess
from PyQt5.QtWidgets import QApplication,QWidget ,QMainWindow
import untitled
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.ui=untitled.Ui_MainWindow()
self.ui.setupUi(self)
args = sys.argv
if len(args) > 1 :
self.ui.lineEdit.setText(args[1])
buttons = [ self.ui.pushButton , self.ui.pushButton_2 , self.ui.pushButton_3 ,self.ui.pushButton_4,
self.ui.pushButton_5,self.ui.pushButton_6 , self.ui.pushButton_7 ,self.ui.pushButton_8,
self.ui.pushButton_9,self.ui.pushButton_10,self.ui.pushButton_11,self.ui.pushButton_12]
self.blist = [
( 'Google' , r'https://www.google.com/search?q={target}' ) , #
( 'hoge' , r'https://hoge/{target}/' ) , #
]
self.chrome = r'<fullpath>'
for i , l in enumerate( self.blist ) :
buttons[i].setText( l[0] )
buttons[i].clicked.connect( self.launchchrome )
def launchchrome( self ) :
title = self.sender().text()
i = 0
for i , l in enumerate( self.blist ) :
if title == l[0] :
break
target = self.ui.lineEdit.text()
url = self.blist[i][1].replace( '{target}' , target )
subprocess.Popen( ( self.chrome , url ) )
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
win = MainWindow()
win.show()
sys.exit(app.exec_())
191029
URLlauncher 位置を保存する
- 位置を変えれないと不便なので
Qtのデフォルトのクラスを使ってみた
from QtCore import QSettings
def closeEvent (self,e) :
settings = QSettings("OsamuApp", "URLlauncer")
settings.setValue("geometry", self.saveGeometry())
def init(self) :# コード追加
try:
settings = QSettings("OsamuApp", "URLlauncer")
self.restoreGeometry( settings.value( "geometry" ) )
except :
self.setWindowTitle('fail--load setting')
- winではレジストリを使う
CURRENT_USER\Software の下にエントリが作成されてた
レジストリを汚されるのが嫌で今まで使ってこなかったが、わざわざ設定ファイルを作らなくて良いので簡単で便利ではあります
linuxに移ってもこのコードのままで設定保存してくれるようなので良いかもしれない - 保存は単純で良いが読込は初回起動時のことを常に考えなければならないのがやや面倒
ざっくりとtryでくくったがこれでいいのかな
ifでエラー回避するよりはtryを使うのが推奨らしいけどなあ
└──>その他もろもろの開発日記