Start a "text entry widgets" module
parent
d034d7e6b1
commit
393446b933
|
@ -0,0 +1,81 @@
|
||||||
|
# piker: trading gear for hackers
|
||||||
|
# Copyright (C) Tyler Goodlet (in stewardship for pikers)
|
||||||
|
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
'''
|
||||||
|
Text entry widgets (mostly for configuration).
|
||||||
|
|
||||||
|
'''
|
||||||
|
from PyQt5 import QtCore, QtGui
|
||||||
|
from PyQt5 import QtWidgets
|
||||||
|
|
||||||
|
from ._search import FontAndChartAwareLineEdit
|
||||||
|
from ._style import hcolor, _font
|
||||||
|
|
||||||
|
|
||||||
|
class LabeledTextInput(QtGui.QWidget):
|
||||||
|
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
godwidget: 'GodWidget', # type: ignore # noqa
|
||||||
|
parent=None,
|
||||||
|
|
||||||
|
) -> None:
|
||||||
|
super().__init__(parent or godwidget)
|
||||||
|
|
||||||
|
# size it as we specify
|
||||||
|
self.setSizePolicy(
|
||||||
|
QtWidgets.QSizePolicy.Fixed,
|
||||||
|
QtWidgets.QSizePolicy.Fixed,
|
||||||
|
)
|
||||||
|
|
||||||
|
self.godwidget = godwidget
|
||||||
|
|
||||||
|
# split layout for the (label:| text bar entry)
|
||||||
|
self.hbox = QtGui.QHBoxLayout(self)
|
||||||
|
self.hbox.setContentsMargins(0, 0, 0, 0)
|
||||||
|
self.hbox.setSpacing(4)
|
||||||
|
|
||||||
|
# add label to left of search bar
|
||||||
|
self.label = label = QtGui.QLabel(parent=self)
|
||||||
|
label.setTextFormat(3) # markdown
|
||||||
|
label.setFont(_font.font)
|
||||||
|
label.setStyleSheet(
|
||||||
|
f"QLabel {{ color : {hcolor('gunmetal')}; }}"
|
||||||
|
)
|
||||||
|
label.setMargin(4)
|
||||||
|
label.setText("`$cap:`")
|
||||||
|
label.setAlignment(
|
||||||
|
QtCore.Qt.AlignVCenter
|
||||||
|
| QtCore.Qt.AlignLeft
|
||||||
|
)
|
||||||
|
label.show()
|
||||||
|
|
||||||
|
self.hbox.addWidget(label)
|
||||||
|
|
||||||
|
self.edit = FontAndChartAwareLineEdit(
|
||||||
|
parent=self,
|
||||||
|
parent_chart=godwidget,
|
||||||
|
)
|
||||||
|
self.edit.set_width_in_chars(6)
|
||||||
|
self.edit.setText('5000')
|
||||||
|
self.hbox.addWidget(self.edit)
|
||||||
|
|
||||||
|
def sizeHint(self) -> QtCore.QSize:
|
||||||
|
"""
|
||||||
|
Scale edit box to size of dpi aware font.
|
||||||
|
|
||||||
|
"""
|
||||||
|
return self.edit.sizeHint()
|
Loading…
Reference in New Issue