本文整理汇总了Python中PyQt4.QtGui.QDirModel.setFilter方法的典型用法代码示例。如果您正苦于以下问题:Python QDirModel.setFilter方法的具体用法?Python QDirModel.setFilter怎么用?Python QDirModel.setFilter使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PyQt4.QtGui.QDirModel
的用法示例。
在下文中一共展示了QDirModel.setFilter方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from PyQt4.QtGui import QDirModel [as 别名]
# 或者: from PyQt4.QtGui.QDirModel import setFilter [as 别名]
def __init__(self):
super(GeneralPreferences, self).__init__()
grid = QGridLayout(self)
grid.setSpacing(20)
grid.setColumnStretch(1, 10)
# directory auto completer
completer = QCompleter(self)
dirs = QDirModel(self)
dirs.setFilter(QDir.AllDirs | QDir.NoDotAndDotDot)
completer.setModel(dirs)
completer.setCaseSensitivity(Qt.CaseInsensitive)
completer.setCompletionMode(QCompleter.PopupCompletion)
l = QLabel(
u"<b>Ingresá el directorio donde descargar los videos...</b>")
l.setTextFormat(Qt.RichText)
grid.addWidget(l, 0, 0, 1, 2)
grid.addWidget(QLabel(u"Descargar en:"), 1, 0, 2, 1)
prv = config.get('downloaddir', '')
self.downloaddir_entry = QLineEdit(prv)
self.downloaddir_entry.setCompleter(completer)
self.downloaddir_entry.setPlaceholderText(u'Ingresá un directorio')
grid.addWidget(self.downloaddir_entry, 1, 1, 2, 2)
self.downloaddir_buttn = QPushButton(u"Elegir un directorio")
self.downloaddir_buttn.clicked.connect(self._choose_dir)
grid.addWidget(self.downloaddir_buttn, 2, 1, 3, 2)
self.autoreload_checkbox = QCheckBox(
u"Recargar automáticamente la lista de episodios al iniciar")
prv = config.get('autorefresh', False)
self.autoreload_checkbox.setChecked(prv)
grid.addWidget(self.autoreload_checkbox, 3, 0, 4, 2)
self.shownotifs_checkbox = QCheckBox(
u"Mostrar una notificación cuando termina cada descarga")
prv = config.get('notification', True)
self.shownotifs_checkbox.setChecked(prv)
grid.addWidget(self.shownotifs_checkbox, 4, 0, 5, 2)
示例2: DirCompleter
# 需要导入模块: from PyQt4.QtGui import QDirModel [as 别名]
# 或者: from PyQt4.QtGui.QDirModel import setFilter [as 别名]
class DirCompleter( QCompleter ):
""" Completer for directory names """
def __init__( self, parent = None,
completionMode = QCompleter.PopupCompletion,
showHidden = False ):
QCompleter.__init__( self, parent )
self.__model = QDirModel( self )
if showHidden:
filters = QDir.Filters(QDir.Drives | QDir.AllDirs | QDir.Hidden)
else:
filters = QDir.Filters(QDir.Drives | QDir.AllDirs)
self.__model.setFilter( filters )
self.setModel( self.__model )
self.setCompletionMode( completionMode )
if parent:
parent.setCompleter( self )
return
示例3: SearchWidget
# 需要导入模块: from PyQt4.QtGui import QDirModel [as 别名]
# 或者: from PyQt4.QtGui.QDirModel import setFilter [as 别名]
class SearchWidget(QFrame):
"""Widget, appeared, when Ctrl+F pressed.
Has different forms for different search modes
"""
Normal = "normal"
Good = "good"
Bad = "bad"
Incorrect = "incorrect"
visibilityChanged = pyqtSignal(bool)
"""
visibilityChanged(visible)
**Signal** emitted, when widget has been shown or hidden
""" # pylint: disable=W0105
searchInDirectoryStartPressed = pyqtSignal(type(re.compile("")), list, unicode)
"""
searchInDirectoryStartPressed(regEx, mask, path)
**Signal** emitted, when 'search in directory' button had been pressed
""" # pylint: disable=W0105
searchInDirectoryStopPressed = pyqtSignal()
"""
searchInDirectoryStopPressed()
**Signal** emitted, when 'stop search in directory' button had been pressed
""" # pylint: disable=W0105
replaceCheckedStartPressed = pyqtSignal(unicode)
"""
replaceCheckedStartPressed(replText)
**Signal** emitted, when 'replace checked' button had been pressed
""" # pylint: disable=W0105
replaceCheckedStopPressed = pyqtSignal()
"""
replaceCheckedStartPressed()
**Signal** emitted, when 'stop replacing checked' button had been pressed
""" # pylint: disable=W0105
searchRegExpChanged = pyqtSignal(type(re.compile("")))
"""
searchRegExpValidStateChanged(regEx)
**Signal** emitted, when search regexp has been changed.
If reg exp is invalid - regEx object contains empty pattern
""" # pylint: disable=W0105
searchNext = pyqtSignal()
"""
searchNext()
**Signal** emitted, when 'Search Next' had been pressed
""" # pylint: disable=W0105
searchPrevious = pyqtSignal()
"""
searchPrevious()
**Signal** emitted, when 'Search Previous' had been pressed
""" # pylint: disable=W0105
replaceFileOne = pyqtSignal(unicode)
"""
replaceFileOne(replText)
**Signal** emitted, when 'Replace' had been pressed
""" # pylint: disable=W0105
replaceFileAll = pyqtSignal(unicode)
"""
replaceFileAll(replText)
**Signal** emitted, when 'Replace All' had been pressed
""" # pylint: disable=W0105
def __init__(self, plugin):
QFrame.__init__(self, core.workspace())
self._mode = None
self.plugin = plugin
from PyQt4 import uic # lazy import for better startup performance
uic.loadUi(os.path.join(os.path.dirname(__file__), "SearchWidget.ui"), self)
self.cbSearch.setCompleter(None)
self.cbReplace.setCompleter(None)
self.cbMask.setCompleter(None)
self.fsModel = QDirModel(self.cbPath.lineEdit())
self.fsModel.setFilter(QDir.AllDirs | QDir.NoDotAndDotDot)
self.cbPath.lineEdit().setCompleter(QCompleter(self.fsModel, self.cbPath.lineEdit()))
# TODO QDirModel is deprecated but QCompleter does not yet handle
# QFileSystemodel - please update when possible."""
self.cbSearch.setCompleter(None)
self.pbSearchStop.setVisible(False)
#.........这里部分代码省略.........
示例4: MyMainWindow
# 需要导入模块: from PyQt4.QtGui import QDirModel [as 别名]
# 或者: from PyQt4.QtGui.QDirModel import setFilter [as 别名]
class MyMainWindow(QMainWindow):
" Main Window "
def __init__(self, parent=None):
" Initialize QWidget inside MyMainWindow "
super(MyMainWindow, self).__init__(parent)
QWidget.__init__(self)
self.statusBar().showMessage(" " + __doc__)
self.setStyleSheet("QStatusBar{color:grey;}")
self.setWindowTitle(__doc__)
self.setWindowIcon(QIcon.fromTheme("face-monkey"))
self.setFont(QFont("Ubuntu Light", 10))
self.setMaximumSize(QDesktopWidget().screenGeometry().width(), QDesktopWidget().screenGeometry().height())
# directory auto completer
self.completer = QCompleter(self)
self.dirs = QDirModel(self)
self.dirs.setFilter(QDir.AllEntries | QDir.NoDotAndDotDot)
self.completer.setModel(self.dirs)
self.completer.setCaseSensitivity(Qt.CaseInsensitive)
self.completer.setCompletionMode(QCompleter.PopupCompletion)
# process
self.process = QProcess(self)
# self.process.finished.connect(self.on_process_finished)
# self.process.error.connect(self.on_process_error)
# Proxy support, by reading http_proxy os env variable
proxy_url = QUrl(environ.get("http_proxy", ""))
QNetworkProxy.setApplicationProxy(
QNetworkProxy(
QNetworkProxy.HttpProxy if str(proxy_url.scheme()).startswith("http") else QNetworkProxy.Socks5Proxy,
proxy_url.host(),
proxy_url.port(),
proxy_url.userName(),
proxy_url.password(),
)
) if "http_proxy" in environ else None
print((" INFO: Proxy Auto-Config as " + str(proxy_url)))
# basic widgets layouts and set up
self.mainwidget = QTabWidget()
self.mainwidget.setToolTip(__doc__)
self.mainwidget.setMovable(True)
self.mainwidget.setTabShape(QTabWidget.Triangular)
self.mainwidget.setTabsClosable(True)
self.mainwidget.setContextMenuPolicy(Qt.CustomContextMenu)
self.mainwidget.tabCloseRequested.connect(
lambda: self.mainwidget.setTabPosition(1)
if self.mainwidget.tabPosition() == 0
else self.mainwidget.setTabPosition(0)
)
self.setCentralWidget(self.mainwidget)
self.dock1 = QDockWidget()
self.dock2 = QDockWidget()
self.dock3 = QDockWidget()
for a in (self.dock1, self.dock2, self.dock3):
a.setWindowModality(Qt.NonModal)
a.setWindowOpacity(0.9)
a.setWindowTitle(__doc__ if a.windowTitle() == "" else a.windowTitle())
a.setStyleSheet(" QDockWidget::title{text-align:center;}")
a.setFeatures(QDockWidget.DockWidgetFloatable | QDockWidget.DockWidgetMovable)
self.mainwidget.addTab(a, QIcon.fromTheme("face-cool"), str(a.windowTitle()).strip().lower())
# Paleta de colores para pintar transparente
self.palette().setBrush(QPalette.Base, Qt.transparent)
self.setPalette(self.palette())
self.setAttribute(Qt.WA_OpaquePaintEvent, False)
# toolbar and basic actions
self.toolbar = QToolBar(self)
self.toolbar.setIconSize(QSize(24, 24))
# spacer widget for left
self.left_spacer = QWidget(self)
self.left_spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
# spacer widget for right
self.right_spacer = QWidget(self)
self.right_spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
qaqq = QAction(QIcon.fromTheme("application-exit"), "Quit", self)
qaqq.setShortcut("Ctrl+Q")
qaqq.triggered.connect(exit)
qamin = QAction(QIcon.fromTheme("go-down"), "Minimize", self)
qamin.triggered.connect(lambda: self.showMinimized())
qamax = QAction(QIcon.fromTheme("go-up"), "Maximize", self)
qanor = QAction(QIcon.fromTheme("go-up"), "AutoCenter AutoResize", self)
qanor.triggered.connect(self.center)
qatim = QAction(QIcon.fromTheme("go-up"), "View Date and Time", self)
qatim.triggered.connect(self.timedate)
qabug = QAction(QIcon.fromTheme("help-about"), "Report a Problem", self)
qabug.triggered.connect(
lambda: qabug.setDisabled(True)
if not call("xdg-open mailto:" + "[email protected]".decode("rot13"), shell=True)
else " ERROR "
)
qamax.triggered.connect(lambda: self.showMaximized())
qaqt = QAction(QIcon.fromTheme("help-about"), "About Qt", self)
qaqt.triggered.connect(lambda: QMessageBox.aboutQt(self))
qaslf = QAction(QIcon.fromTheme("help-about"), "About Self", self)
qaslf.triggered.connect(
lambda: QMessageBox.about(
#.........这里部分代码省略.........
示例5: DiffGUI
# 需要导入模块: from PyQt4.QtGui import QDirModel [as 别名]
# 或者: from PyQt4.QtGui.QDirModel import setFilter [as 别名]
class DiffGUI(object):
' diff gui class '
def __init__(self):
' make a diff method with GUI '
self.dialog = QDialog()
self.diff_path = None
# directory auto completer
self.completer = QCompleter(self.dialog)
self.dirs = QDirModel(self.dialog)
self.dirs.setFilter(QDir.AllEntries | QDir.NoDotAndDotDot)
self.completer.setModel(self.dirs)
self.completer.setCaseSensitivity(Qt.CaseInsensitive)
self.completer.setCompletionMode(QCompleter.PopupCompletion)
self.group1 = QGroupBox()
self.group1.setTitle('Diff')
self.frmt = QComboBox(self.group1)
self.frmt.addItems(['Unified', 'Normal', 'Context'])
self.file1 = QLineEdit()
self.file1.setPlaceholderText('/full/path/to/one_file.py')
self.file1.setCompleter(self.completer)
self.file2 = QLineEdit()
self.file2.setPlaceholderText('/full/path/to/another_file.py')
self.file2.setCompleter(self.completer)
self.fout = QLineEdit()
self.fout.setText(''.join((path.join(gettempdir(),
datetime.now().strftime('%d-%b-%Y_%H:%M:%S.diff')))))
self.fout.setPlaceholderText('/full/path/to/output_file.diff')
self.fout.setCompleter(self.completer)
self.regex = QLineEdit()
self.regex.setPlaceholderText('DONT use unless you know what are doing')
self.regex.setToolTip('Do NOT use unless you know what you are doing !')
self.borig = QPushButton(QIcon.fromTheme("folder-open"), 'Open')
self.borig.clicked.connect(lambda: self.file1.setText(str(
QFileDialog.getOpenFileName(self.dialog, 'Open file to compare',
path.expanduser("~"), ';;(*.*)'))))
self.bmodi = QPushButton(QIcon.fromTheme("folder-open"), 'Open')
self.bmodi.clicked.connect(lambda: self.file2.setText(str(
QFileDialog.getOpenFileName(self.dialog, 'Open file to compare',
path.expanduser("~"), ';;(*.*)'))))
self.bout = QPushButton(QIcon.fromTheme("folder-open"), 'Open')
self.bout.clicked.connect(lambda: self.fout.setText(str(
QFileDialog.getSaveFileName(self.dialog, 'Save a Diff file',
path.expanduser("~"), ';;(*.diff)'))))
vboxg1 = QVBoxLayout(self.group1)
for each_widget in (QLabel('Original file full path'),
self.file1, self.borig,
QLabel('Modified file full path'),
self.file2, self.bmodi,
QLabel('Output file full Path'),
self.fout, self.bout,
QLabel('Diff Output Format'), self.frmt,
QLabel('Diff REGEX to Ignore (ADVANCED)'),
self.regex):
vboxg1.addWidget(each_widget)
self.group2 = QGroupBox()
self.group2.setTitle('Options')
self.nwfl = QCheckBox('Treat new files as Empty')
self.smll = QCheckBox('Look for smaller changes')
self.lrgf = QCheckBox('Optimize for large files')
self.case = QCheckBox('Ignore case changes on content')
self.cnvt = QCheckBox('Convert Tabs to Spaces')
self.blnk = QCheckBox('Ignore added or removed Blank lines')
self.spac = QCheckBox('Ignore changes in amount of Spaces')
self.whit = QCheckBox('Ignore ALL white Spaces')
self.tabz = QCheckBox('Ignore changes by Tab expansions')
self.sprs = QCheckBox('Remove Space or Tab before empty lines')
self.filn = QCheckBox('Ignore case when comparing file names')
self.tbs = QComboBox(self.group2)
self.tbs.addItems(['4', '6', '8', '10', '2'])
self.nice = QComboBox(self.group2)
self.nice.addItems(['20', '15', '10', '5', '0'])
vboxg2 = QVBoxLayout(self.group2)
for each_widget in (self.nwfl, self.smll, self.lrgf, self.case,
self.cnvt, self.blnk, self.spac, self.whit,
self.tabz, self.sprs, self.filn,
QLabel('Diff Tabs-to-Spaces Size'), self.tbs,
QLabel('Diff Backend CPU Priority'), self.nice):
vboxg2.addWidget(each_widget)
try:
each_widget.setToolTip(each_widget.text())
except:
each_widget.setToolTip(each_widget.currentText())
each_widget.setCursor(QCursor(Qt.PointingHandCursor))
group3 = QGroupBox()
group3.setTitle('Even More Options')
self.plai = QCheckBox('Force treat all files as plain text')
self.nocr = QCheckBox('Force strip trailing carriage return')
self.ridt = QCheckBox('Report when two files are identical')
self.nocm = QCheckBox('Do not output common lines')
self.rdif = QCheckBox('Report only when files differ')
self.clip = QCheckBox('Copy Diff to Clipboard when done')
self.noti = QCheckBox('Use system Notification when done')
self.pret = QCheckBox('Align all Tabs by prepending a Tab')
self.lolz = QCheckBox('Output Diff in two equal columns')
self.odif = QCheckBox('Open Diff with Ninja-IDE when done')
#.........这里部分代码省略.........
示例6: ComboBox
# 需要导入模块: from PyQt4.QtGui import QDirModel [as 别名]
# 或者: from PyQt4.QtGui.QDirModel import setFilter [as 别名]
class ComboBox(QComboBox):
"""File browser combo box.
Widget and functionality
"""
def __init__(self, fileBrowser):
QComboBox.__init__(self, fileBrowser)
self._fileBrowser = fileBrowser
self.setAttribute( Qt.WA_MacShowFocusRect, False )
self.setAttribute( Qt.WA_MacSmallSize )
self.setEditable(True)
self.setMinimumContentsLength(1)
self.setSizeAdjustPolicy(QComboBox.AdjustToMinimumContentsLengthWithIcon)
self.lineEdit().setReadOnly( False )
self._completionModel = QDirModel(self.lineEdit())
self._completionModel.setFilter( QDir.AllDirs | QDir.NoDotAndDotDot )
self.lineEdit().setCompleter(QCompleter(self._completionModel,
self.lineEdit()))
#TODO QDirModel is deprecated but QCompleter does not yet handle
#QFileSystemModel - please update when possible.
self._count = 0
# Show popup action
self._showPopupAction = QAction(QIcon(':enkiicons/filtered.png'), "File browser history", self)
self._showPopupAction.setShortcut('Ctrl+H')
core.actionManager().addAction("mNavigation/mFileBrowser/aMenuShow", self._showPopupAction)
self._showPopupAction.triggered.connect(self._onShowPopup)
# reconnected in self.updateComboItems()
self.currentIndexChanged[int].connect(self._onItemSelected)
def del_(self):
"""Explicitly called destructor
"""
core.actionManager().removeAction(self._showPopupAction)
def _onShowPopup(self, triggered):
"""Handler for self._showPopupAction
"""
self.showPopup()
@pyqtSlot(int)
def _onItemSelected(self, index):
"""Handler of item selection in the combo box
"""
if self.count() > self._count: # It is user input
path = self.itemText(index)
if os.path.isdir(path):
self._fileBrowser.setCurrentPath(path)
else:
path = self.itemData(index)
self._fileBrowser.setCurrentPath(path)
def updateItems(self, items):
"""Update items in the combo box according to current history
"""
self.currentIndexChanged[int].disconnect()
self.clear()
# Current text
self.addItem(self._fileBrowser.currentPath())
self.setItemData(0, self._fileBrowser.currentPath())
self.insertSeparator(self.count())
for index, path in enumerate(items):
self.addItem(path)
self.setItemData(index + 2, path)
self._count = self.count()
self.currentIndexChanged[int].connect(self._onItemSelected)
示例7: MyMainWindow
# 需要导入模块: from PyQt4.QtGui import QDirModel [as 别名]
# 或者: from PyQt4.QtGui.QDirModel import setFilter [as 别名]
class MyMainWindow(QMainWindow):
" Main Window "
def __init__(self, parent=None):
" Initialize QWidget inside MyMainWindow "
super(MyMainWindow, self).__init__(parent)
QWidget.__init__(self)
self.statusBar().showMessage(" {}".format(__doc__))
self.setStyleSheet("QStatusBar{color:grey;}")
self.setWindowTitle(__doc__)
self.setWindowIcon(QIcon.fromTheme("face-monkey"))
self.setFont(QFont("Ubuntu Light", 10))
self.setMaximumSize(QDesktopWidget().screenGeometry().width(), QDesktopWidget().screenGeometry().height())
# directory auto completer
self.completer = QCompleter(self)
self.dirs = QDirModel(self)
self.dirs.setFilter(QDir.AllEntries | QDir.NoDotAndDotDot)
self.completer.setModel(self.dirs)
self.completer.setCaseSensitivity(Qt.CaseInsensitive)
self.completer.setCompletionMode(QCompleter.PopupCompletion)
# Proxy support, by reading http_proxy os env variable
proxy_url = QUrl(environ.get("http_proxy", ""))
QNetworkProxy.setApplicationProxy(
QNetworkProxy(
QNetworkProxy.HttpProxy if str(proxy_url.scheme()).startswith("http") else QNetworkProxy.Socks5Proxy,
proxy_url.host(),
proxy_url.port(),
proxy_url.userName(),
proxy_url.password(),
)
) if "http_proxy" in environ else None
print((" INFO: Proxy Auto-Config as " + str(proxy_url)))
# basic widgets layouts and set up
self.mainwidget = QTabWidget()
self.mainwidget.setToolTip(__doc__)
self.mainwidget.setContextMenuPolicy(Qt.CustomContextMenu)
self.mainwidget.tabCloseRequested.connect(lambda: self.mainwidget.setTabPosition(randint(0, 3)))
# if self.mainwidget.tabPosition() == 0
# else self.mainwidget.setTabPosition(0))
self.mainwidget.setStyleSheet("QTabBar{color:white;font-weight:bold;}")
self.mainwidget.setTabBar(TabBar(self))
self.mainwidget.setMovable(True)
self.mainwidget.setTabsClosable(True)
self.mainwidget.setTabShape(QTabWidget.Triangular)
self.setCentralWidget(self.mainwidget)
self.dock1 = QDockWidget()
self.dock2 = QDockWidget()
self.dock3 = QDockWidget()
for a in (self.dock1, self.dock2, self.dock3):
a.setWindowModality(Qt.NonModal)
a.setWindowOpacity(0.9)
a.setWindowTitle(__doc__ if a.windowTitle() == "" else a.windowTitle())
a.setStyleSheet(" QDockWidget::title{text-align:center;}")
self.mainwidget.addTab(a, QIcon.fromTheme("face-smile"), "Double Click Me")
# Paleta de colores para pintar transparente
self.palette().setBrush(QPalette.Base, Qt.transparent)
self.setPalette(self.palette())
self.setAttribute(Qt.WA_OpaquePaintEvent, False)
# toolbar and basic actions
self.toolbar = QToolBar(self)
self.toolbar.setIconSize(QSize(24, 24))
# spacer widget for left
self.left_spacer = QWidget(self)
self.left_spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
# spacer widget for right
self.right_spacer = QWidget(self)
self.right_spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
qaqq = QAction(QIcon.fromTheme("application-exit"), "Quit", self)
qaqq.setShortcut("Ctrl+Q")
qaqq.triggered.connect(exit)
qamin = QAction(QIcon.fromTheme("go-down"), "Minimize", self)
qamin.triggered.connect(lambda: self.showMinimized())
qamax = QAction(QIcon.fromTheme("go-up"), "Maximize", self)
qanor = QAction(QIcon.fromTheme("view-fullscreen"), "AutoCenter AutoResize", self)
qanor.triggered.connect(self.center)
qatim = QAction(QIcon.fromTheme("mail-signed-verified"), "View Date and Time", self)
qatim.triggered.connect(self.timedate)
qabug = QAction(QIcon.fromTheme("help-about"), "Report a Problem", self)
qabug.triggered.connect(
lambda: qabug.setDisabled(True)
if not call("xdg-open mailto:" + "[email protected]".decode("rot13"), shell=True)
else " ERROR "
)
qamax.triggered.connect(lambda: self.showMaximized())
qaqt = QAction(QIcon.fromTheme("help-about"), "About Qt", self)
qaqt.triggered.connect(lambda: QMessageBox.aboutQt(self))
qakde = QAction(QIcon.fromTheme("help-about"), "About KDE", self)
if KDE:
qakde.triggered.connect(KHelpMenu(self, "", False).aboutKDE)
qaslf = QAction(QIcon.fromTheme("help-about"), "About Self", self)
if KDE:
qaslf.triggered.connect(KAboutApplicationDialog(aboutData, self).exec_)
else:
qaslf.triggered.connect(
lambda: QMessageBox.about(
#.........这里部分代码省略.........
示例8: MyMainWindow
# 需要导入模块: from PyQt4.QtGui import QDirModel [as 别名]
# 或者: from PyQt4.QtGui.QDirModel import setFilter [as 别名]
class MyMainWindow(QMainWindow):
' Main Window '
def __init__(self, AUTO):
' Initialize QWidget inside MyMainWindow '
super(MyMainWindow, self).__init__()
QWidget.__init__(self)
self.auto = AUTO
self.statusBar().showMessage(' {}'.format(__doc__))
self.setStyleSheet('QStatusBar{color:grey;}')
self.setWindowTitle(__doc__)
self.setWindowIcon(QIcon.fromTheme("face-monkey"))
self.setFont(QFont('Ubuntu Light', 10))
self.setMaximumSize(QDesktopWidget().screenGeometry().width(),
QDesktopWidget().screenGeometry().height())
self.base = path.abspath(path.join(getcwd(), str(datetime.now().year)))
# directory auto completer
self.completer = QCompleter(self)
self.dirs = QDirModel(self)
self.dirs.setFilter(QDir.AllEntries | QDir.NoDotAndDotDot)
self.completer.setModel(self.dirs)
self.completer.setCaseSensitivity(Qt.CaseInsensitive)
self.completer.setCompletionMode(QCompleter.PopupCompletion)
# process
self.process1 = None
self.process2 = None
self.cmd1 = 'nice -n {n} arecord{v} -f {f} -c {c} -r {b} -t raw'
self.cmd2 = 'oggenc - -r -C {c} -R {b} -q {q} {d}{t}{a} -o {o}'
self.process3 = QProcess(self)
#self.process3.finished.connect(self.on_process3_finished)
#self.process3.error.connect(self.on_process3_error)
self.cmd3 = ('nice -n 20 ' +
'sox "{o}" -n spectrogram -x {x} -y {y} -z 99 -t "{o}" -o "{o}.png"')
self.actual_file = ''
# re starting timers, one stops, one starts
self.timerFirst = QTimer(self)
self.timerFirst.timeout.connect(self.end)
self.timerSecond = QTimer(self)
self.timerSecond.timeout.connect(self.run)
# Proxy support, by reading http_proxy os env variable
proxy_url = QUrl(environ.get('http_proxy', ''))
QNetworkProxy.setApplicationProxy(QNetworkProxy(QNetworkProxy.HttpProxy
if str(proxy_url.scheme()).startswith('http')
else QNetworkProxy.Socks5Proxy, proxy_url.host(), proxy_url.port(),
proxy_url.userName(), proxy_url.password())) \
if 'http_proxy' in environ else None
print((' INFO: Proxy Auto-Config as ' + str(proxy_url)))
# basic widgets layouts and set up
self.mainwidget = QTabWidget()
self.mainwidget.setToolTip(__doc__)
self.mainwidget.setMovable(True)
self.mainwidget.setTabShape(QTabWidget.Triangular)
self.mainwidget.setContextMenuPolicy(Qt.CustomContextMenu)
self.mainwidget.setStyleSheet('QTabBar{color:white;font-weight:bold;}')
self.mainwidget.setTabBar(TabBar(self))
self.mainwidget.setTabsClosable(False)
self.setCentralWidget(self.mainwidget)
self.dock1 = QDockWidget()
self.dock2 = QDockWidget()
self.dock3 = QDockWidget()
self.dock4 = QDockWidget()
self.dock5 = QDockWidget()
for a in (self.dock1, self.dock2, self.dock3, self.dock4, self.dock5):
a.setWindowModality(Qt.NonModal)
# a.setWindowOpacity(0.9)
a.setWindowTitle(__doc__
if a.windowTitle() == '' else a.windowTitle())
a.setStyleSheet('QDockWidget::title{text-align:center;}')
self.mainwidget.addTab(a, QIcon.fromTheme("face-smile"),
'Double Click Me')
# Paleta de colores para pintar transparente
self.palette().setBrush(QPalette.Base, Qt.transparent)
self.setPalette(self.palette())
self.setAttribute(Qt.WA_OpaquePaintEvent, False)
# toolbar and basic actions
self.toolbar = QToolBar(self)
self.toolbar.setIconSize(QSize(24, 24))
# spacer widget for left
self.left_spacer = QWidget(self)
self.left_spacer.setSizePolicy(QSizePolicy.Expanding,
QSizePolicy.Expanding)
# spacer widget for right
self.right_spacer = QWidget(self)
self.right_spacer.setSizePolicy(QSizePolicy.Expanding,
QSizePolicy.Expanding)
qaqq = QAction(QIcon.fromTheme("application-exit"), 'Quit', self)
qaqq.setShortcut('Ctrl+Q')
qaqq.triggered.connect(exit)
qamin = QAction(QIcon.fromTheme("go-down"), 'Minimize', self)
qamin.triggered.connect(lambda: self.showMinimized())
qamax = QAction(QIcon.fromTheme("go-up"), 'Maximize', self)
qanor = QAction(QIcon.fromTheme("view-fullscreen"),
#.........这里部分代码省略.........
示例9: Main
# 需要导入模块: from PyQt4.QtGui import QDirModel [as 别名]
# 或者: from PyQt4.QtGui.QDirModel import setFilter [as 别名]
class Main(plugin.Plugin):
" Main Class "
def initialize(self, *args, **kwargs):
" Init Main Class "
ec = ExplorerContainer()
super(Main, self).initialize(*args, **kwargs)
self.editor_s = self.locator.get_service('editor')
# directory auto completer
self.completer = QCompleter(self)
self.dirs = QDirModel(self)
self.dirs.setFilter(QDir.AllEntries | QDir.NoDotAndDotDot)
self.completer.setModel(self.dirs)
self.completer.setCaseSensitivity(Qt.CaseInsensitive)
self.completer.setCompletionMode(QCompleter.PopupCompletion)
self.group0 = QGroupBox()
self.group0.setTitle(' Source ')
self.source = QComboBox()
self.source.addItems(['Clipboard', 'Local File', 'Remote URL', 'Ninja'])
self.source.currentIndexChanged.connect(self.on_source_changed)
self.infile = QLineEdit(path.expanduser("~"))
self.infile.setPlaceholderText(' /full/path/to/file.html ')
self.infile.setCompleter(self.completer)
self.open = QPushButton(QIcon.fromTheme("folder-open"), 'Open')
self.open.setCursor(QCursor(Qt.PointingHandCursor))
self.open.clicked.connect(lambda: self.infile.setText(str(
QFileDialog.getOpenFileName(self.dock, "Open a File to read from",
path.expanduser("~"), ';;'.join(['{}(*.{})'.format(e.upper(), e)
for e in ['css', 'html', 'js', 'txt', '*']])))))
self.inurl = QLineEdit('http://www.')
self.inurl.setPlaceholderText('http://www.full/url/to/remote/file.html')
self.output = QPlainTextEdit(SAMPLE_TEXT)
vboxg0 = QVBoxLayout(self.group0)
for each_widget in (self.source, self.infile, self.open, self.inurl,
self.output, ):
vboxg0.addWidget(each_widget)
[a.hide() for a in iter((self.infile, self.open, self.inurl))]
self.group1 = QGroupBox()
self.group1.setTitle(' CSS3 ')
self.group1.setCheckable(True)
self.group1.setGraphicsEffect(QGraphicsBlurEffect(self))
self.group1.graphicsEffect().setEnabled(False)
self.group1.toggled.connect(self.toggle_css_group)
self.ckcss1 = QCheckBox('Remove unnecessary Comments')
self.ckcss2 = QCheckBox('Remove unnecessary Whitespace characters')
self.ckcss3 = QCheckBox('Remove unnecessary Semicolons')
self.ckcss4 = QCheckBox('Remove unnecessary Empty rules')
self.ckcss5 = QCheckBox('Condense and Convert Colors from RGB to HEX')
self.ckcss6 = QCheckBox('Condense all Zero units')
self.ckcss7 = QCheckBox('Condense Multidimensional Zero units')
self.ckcss8 = QCheckBox('Condense Floating point numbers')
self.ckcss9 = QCheckBox('Condense HEX Colors')
self.ckcss10 = QCheckBox('Condense multiple adjacent Whitespace chars')
self.ckcss11 = QCheckBox('Condense multiple adjacent semicolon chars')
self.ckcss12 = QCheckBox('Wrap the lines of the to 80 character length')
self.ckcss13 = QCheckBox('Condense Font Weight values')
self.ckcss14 = QCheckBox('Condense the 17 Standard Named Colors values')
self.ckcss15 = QCheckBox('Condense the 124 Extra Named Colors values')
self.ckcss16 = QCheckBox('Condense all Percentages values when posible')
self.ckcss17 = QCheckBox('Condense all Pixels values when posible')
self.ckcss18 = QCheckBox('Remove unnecessary quotes from url()')
self.ckcss19 = QCheckBox('Add standard Encoding Declaration if missing')
vboxg1 = QVBoxLayout(self.group1)
for each_widget in (self.ckcss1, self.ckcss2, self.ckcss3, self.ckcss4,
self.ckcss5, self.ckcss6, self.ckcss7, self.ckcss8, self.ckcss9,
self.ckcss10, self.ckcss11, self.ckcss12, self.ckcss13,
self.ckcss14, self.ckcss15, self.ckcss16, self.ckcss17,
self.ckcss18, self.ckcss19):
vboxg1.addWidget(each_widget)
each_widget.setToolTip(each_widget.text())
self.group2 = QGroupBox()
self.group2.setTitle(' HTML5 ')
self.group2.setCheckable(True)
self.group2.setGraphicsEffect(QGraphicsBlurEffect(self))
self.group2.graphicsEffect().setEnabled(False)
self.group2.toggled.connect(self.toggle_html_group)
self.ckhtml0 = QCheckBox('Condense Style and Script HTML Tags')
self.ckhtml1 = QCheckBox('Condense DOCTYPE to new HTML5 Tags')
self.ckhtml2 = QCheckBox('Condense Href and Src to protocol agnostic')
self.ckhtml4 = QCheckBox('Remove unnecessary Tags but keep HTML valid')
self.help1 = QLabel('''<a href=
"https://developers.google.com/speed/articles/optimizing-html">
<small><center>Help about Unneeded Unnecessary HTML tags ?</a>''')
self.help1.setTextInteractionFlags(Qt.LinksAccessibleByMouse)
self.help1.setOpenExternalLinks(True)
vboxg2 = QVBoxLayout(self.group2)
for each_widget in (self.ckhtml0, self.ckhtml1, self.ckhtml2,
self.ckhtml4, self.help1, ):
vboxg2.addWidget(each_widget)
each_widget.setToolTip(each_widget.text())
self.group3 = QGroupBox()
self.group3.setTitle(' Javascript ')
self.ckjs0 = QCheckBox('Condense and Compress Javascript')
self.ckjs1 = QCheckBox('Condense $(document).ready(function(){ });')
vboxg2 = QVBoxLayout(self.group3)
for each_widget in (self.ckjs0, self.ckjs1):
#.........这里部分代码省略.........
示例10: Main
# 需要导入模块: from PyQt4.QtGui import QDirModel [as 别名]
# 或者: from PyQt4.QtGui.QDirModel import setFilter [as 别名]
class Main(plugin.Plugin):
" Main Class "
def initialize(self, *args, **kwargs):
" Init Main Class "
super(Main, self).initialize(*args, **kwargs)
# directory auto completer
self.completer = QCompleter(self)
self.dirs = QDirModel(self)
self.dirs.setFilter(QDir.AllEntries | QDir.NoDotAndDotDot)
self.completer.setModel(self.dirs)
self.completer.setCaseSensitivity(Qt.CaseInsensitive)
self.completer.setCompletionMode(QCompleter.PopupCompletion)
# tab widget
self.mainwidget = QTabWidget()
self.mainwidget.setToolTip(__doc__)
self.mainwidget.setTabShape(QTabWidget.Triangular)
self.mainwidget.setMovable(True)
self.mainwidget.setTabsClosable(True)
self.mainwidget.tabCloseRequested.connect(lambda:
self.mainwidget.setTabPosition(1)
if self.mainwidget.tabPosition() == 0
else self.mainwidget.setTabPosition(0))
self.dock1 = QDockWidget()
self.dock2 = QDockWidget()
for indx, a in enumerate((self.dock1, self.dock2)):
a.setWindowModality(Qt.NonModal)
a.setWindowOpacity(0.9)
a.setWindowTitle('Semantic Files' if indx == 0 else 'Simple Query')
a.setStyleSheet('QDockWidget::title{text-align:center;}')
self.mainwidget.addTab(a, QIcon.fromTheme("nepomuk"),
'Semantic Files' if indx == 0 else 'Simple Query')
QPushButton(QIcon.fromTheme("help-about"), 'Help About', self.dock1
).clicked.connect(lambda:
QMessageBox.information(self.dock1, __doc__, HELPMSG))
# Group of widgets for each tab
self.group1 = QGroupBox()
self.filename = QLineEdit()
self.filename.setPlaceholderText('/full/path/to/one_file.py')
self.filename.setCompleter(self.completer)
self.filebttn = QPushButton(QIcon.fromTheme("folder-open"), 'Open File')
self.filebttn.clicked.connect(lambda: self.filename.setText(str(
QFileDialog.getOpenFileName(self.mainwidget,
" Please, open a .py file to add Semantics ", path.expanduser("~"),
';;'.join(['(*.{}) {}'.format(e, e.upper()) for e in ['*', 'py']])))
))
self.group1a = QGroupBox()
self.filetag = QLineEdit()
self.filetag.setPlaceholderText('Type a short Tag for the choosen File')
self.filelbl = QLineEdit()
self.filelbl.setPlaceholderText('Type a descriptive Label for the Tag')
self.filedsc = QLineEdit()
self.filedsc.setPlaceholderText('Type a large and detailed Description')
self.filerat = KRatingWidget()
self.filerat.setToolTip('Set a File Rating')
vboxg1a = QHBoxLayout(self.group1a)
for each_widget in (QLabel('<b>File Tag'), self.filetag,
QLabel('<b>Tag Label'), self.filelbl,
QLabel('<b>Description'), self.filedsc,
QLabel('<b>File Rating'), self.filerat):
vboxg1a.addWidget(each_widget)
self.nepobtn = QPushButton(QIcon.fromTheme("nepomuk"), 'Add Semantics')
self.nepobtn.setMinimumSize(self.nepobtn.size().width(), 50)
self.nepobtn.clicked.connect(lambda: self.nepomuk_set(
str(self.filename.text()).strip(), str(self.filetag.text()).strip(),
str(self.filelbl.text()).strip(), str(self.filedsc.text()).strip()))
vboxg1 = QVBoxLayout(self.group1)
for each_widget in (
QLabel('<b>Choose a File'), self.filename, self.filebttn,
self.group1a, self.nepobtn):
vboxg1.addWidget(each_widget)
self.group2 = QGroupBox()
self.group2.setTitle('Sorry!, this Tab is not Ready yet...')
QLabel('<b style="color:red;"><i>Not Ready Yet!', self.dock2)
self.search = QLineEdit()
self.search.setPlaceholderText('Type to Query...')
self.srcbtn = QPushButton(QIcon.fromTheme("folder-open"), 'Query')
self.result = QTextEdit()
self.srcbtn.clicked.connect(lambda:
self.nepomuk_get(str(self.search.text()).strip().lower()))
vboxg2 = QVBoxLayout(self.group2)
for each_widget in (
QLabel('<b>Type for a Semantic Query'), self.search, self.srcbtn,
QLabel('<b>Semantic Query Results'), self.result):
vboxg2.addWidget(each_widget)
# pack the group of widgets on the gui
self.dock1.setWidget(self.group1)
self.dock2.setWidget(self.group2)
# pack the plugin on ninja-ide gui
self.locator.get_service('misc').add_widget(
self.mainwidget, QIcon.fromTheme("nepomuk"), __doc__)
#.........这里部分代码省略.........