与Entry 类似,但可以指定输入范围值 创建一个Spinbox 代码: import tkinter as tk root = tk.Tk() # root.geometry('200x100') tk.Spinbox 只是创建了一个 Spinbox,其它的什么也做不了,与 Scale 不同,Scale 使用缺省值就可以控制 值的改变 设置 Spinbox 的最大、最小值和步距值 代码: import tkinter 上面的代码将变量 v 与 sb 绑定,并将 Spinbox 的初始值设置为20,运行程序,Spinbox 的值显示为20,再点击 up 按钮,此时值变为40 再看下面的代码,与这个不同的是设置的值不包含在 每次点击 Spinbox 按钮时就会调用 printSpin 函数,打印出'Spinbox'。 每次点击 Spinbox 按钮时就会调用 printSpin 函数,打印出 Spinbox 的当前值 删除 Spinbox 指定位置的字符 代码: import tkinter as tk root =
https://blog.csdn.net/10km/article/details/81147355 minigui/ncs控件集中的Spinbox控件存在一个问题,如下图,即使设置了字体 通过查看libmgncs-1.2.0的源码,找到了原因,Spinbox控件中用于显示数字的子控件是SLEdit, 以下是mspinbox.c代码片段,createBody用于创建子控件,可以看到editor body = create_pieces(self, editor, dwStyle); return body; } SLEdit本身是可以正常响应MSG_FONTCHANGED消息的,但是Spinbox } return FALSE; } //$func @2628714496 onFontChanged -- Need by merge, don't modify static void Spinbox1 _handlers [] = { {MSG_FONTCHANGED,Spinbox1_onFontChanged}, //$user -- TODO add your handlers
在 Tkinter 中,Spinbox 的范围可以动态调整,这需要使用 Spinbox 的 config 方法来更新其参数,如 from_ 和 to。 受其启发(并在查看 http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/spinbox.html 上的 Spinbox 文档后),我提出了下面的代码。 我也尝试使用动态范围设置 Spinbox 或者我开始怀疑它们是否在创建 Spinbox 后无法更改? 唯一的明显区别是,年份和日期 Spinbox 使用整数,而月份 Spinbox 使用字符串。有任何建议吗? 关于更新日 Spinbox,我没有看到您尝试在何处更新它,因此我不确定为什么您认为它应该更新。要更新 Spinbox,请将命令附加到 month Spinbox,然后在回调中执行更新。
它通常以微调框(SpinBox)的形式展现,用户可以通过微调框上的按钮或手动输入来增加或减少整数值。 接下来我将用一个简单的案例展示如何使用SpinBox组件,该组件有两个版本SpinBox()用于展示单精度浮点数,而DoubleSpinBox()则可以展示精度更高的数值,需要注意的是,该组件有两个特殊参数 ->value(); int y = ui->spinBox_2->value(); double total = x+y; // 设置SpinBox数值(设置时无需转换 ) ui->doubleSpinBox->setValue(total); } 我们继续在SpinBox的基础上改进,如上代码中每次都需要点击计算按钮才能出结果,此时的需求是当SpinBox中的参数发生变化时自定的完成计算 ,这里就需要用到信号和槽了,当SpinBox被修改后,自动触发计算信号实现计算。
self.spinBox.setRange(-10, 100) self.spinBox.setSingleStep(10) self.spinBox.setValue (10) self.spinBox.setWrapping(True) # spinbox2 self.spinBox_2.setRange(-10, 100 ) self.spinBox_2.setSingleStep(10) self.spinBox_2.setValue(10) self.spinBox_2 self.spinBox.valueChanged.connect(self.spinBox_cb) self.spinBox_2.valueChanged.connect(self.spinBox2 valueChanged信号对应的槽函数,槽函数中显示当前spinBox数值,同时为spinbox2增加前后缀,实现多样化显示。
lable4 = QLabel(u"中奖人数设置:") lable4.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.spinBox = QSpinBox() self.spinBox.setMinimum(1) self.spinBox.setMaximum(len(self.List)) (1)#默认中奖人数 elif index ==1:#二等奖 self.spinBox.setValue(3)#默认中奖人数 elif index ==2:#三等奖 self.spinBox.setValue(5)#默认中奖人数 else:pass def thread_start(self) ().setEnabled(False) self.spinBox.setEnabled(False) self.combo_box.setEnabled(False)
此处我们分别重写三个代理接口,其中两个ComBox组件用于选择婚否,而第三个SpinBox组件则用于调节数值范围,先来定义三个重写部件。 1.2 自定义代理组件这里我们以第一个SpinBox组件为例,要实现代理该组件,首先需要在项目上新建一个SpinDelegate类,并依次实现上述的四个方法,先来开创建流程;选择addnew选中 C++ = static_cast<QSpinBox*>(editor); // 强制类型转换 spinBox->interpretText(); / / 解释数据,如果数据被修改后,就触发信号 int value = spinBox->value(); // 获取spinBox的值 model- = static_cast<QDoubleSpinBox*>(editor); spinBox->interpretText(); float value = spinBox->value
# 最大、最小值设置 self.spinBox.setMinimum(1) self.spinBox.setMaximum(3) # 值改变会触发 valueChanged 事件 self.spinBox.valueChanged.connect (self.change_table) # 读取选值框里的值 def change_table(self): print(self.spinBox.value()) 实例效果图展示:
() 将Widget组件上的数据更新到数据模型 UpdateEditorGeometry() 给Widget组件设置一个合适的大小 此处我们分别重写三个代理接口,其中两个ComBox组件用于选择婚否,SpinBox = static_cast<QSpinBox*>(editor); //强制类型转换 spinBox->interpretText(); //解释数据,如果数据被修改后,就触发信号 int value = spinBox->value(); //获取spinBox的值 model->setData(index, value, Qt::EditRole); //更新到数据模型 } = static_cast<QDoubleSpinBox*>(editor); spinBox->setValue(value); } // https://www.cnblogs.com/ = static_cast<QDoubleSpinBox*>(editor); spinBox->interpretText(); float value = spinBox->value
@TOC 前言 本篇文章主要python第三方库Tkinter库的使用,包括输入框(Entry)控件,Spinbox控件,Listbox(列表框)控件和Combobox(复合框)控件它们的常用属性和方法以及具体的示例和相应的效果图 效果 Spinbox控件 Spinbox 是 Entry 控件的升级版,该控件不仅允许用户直接输入内容,还支持用户使用微调选择器(即上下按钮调节器)来输入内容。 在一般情况下,Spinbox 控件用于在固定的范围内选取一个值的时候使用。 ") # 创建Spinbox控件并设置属性 spinbox = tk.Spinbox(window, from_=0, to=100, width=10,font=('.. /font/jian.ttf',14),increment=5,wrap=True) spinbox.pack() # 创建Spinbox2控件并放置 spinbox2 = tk.Spinbox(window
->value(); lcd_image_h=ui->spinBox_h->value(); image_val=ui->spinBox_image_val->value(); server_port= ui->spinBox_port->value(); /*保存数据到文件,方便下次加载*/ QString text; text=QCoreApplication::applicationDirPath >> lcd_image_w >> lcd_image_h >> image_val>>server_port; //提取写入的数据 filenew.close(); //设置界面值 ui->spinBox_w ->setValue(lcd_image_w); ui->spinBox_h->setValue(lcd_image_h); ui->spinBox_image_val->setValue(image_val ); ui->spinBox_port->setValue(server_port); }
//获取数据模型的模型索引指向的单元的数据 int value = index.model()->data(index, Qt::EditRole).toInt(); QSpinBox *spinBox = static_cast<QSpinBox*>(editor); //强制类型转换 spinBox->setValue(value); //设置编辑器的数值}void QWIntSpinDelegate = static_cast<QSpinBox*>(editor); //强制类型转换 spinBox->interpretText(); //解释数据,如果数据被修改后,就触发信号 int value = spinBox->value(); //获取spinBox的值 model->setData(index, value, Qt::EditRole); //更新到数据模型}void = static_cast<QDoubleSpinBox*>(editor); spinBox->interpretText(); float value = spinBox->value
void (QSpinBox:: * p) (int) = &QSpinBox::valueChanged; //因为valueChanged函数有重载 connect(ui->spinBox ->horizontalSlider,&QSlider::setValue); connect(ui->horizontalSlider,&QSlider::valueChanged,ui->spinBox ,&QSpinBox::setValue); } MyWidget::~MyWidget() { delete ui; } 进行上面的信号槽封装以后,我们就能拖动Slider来改变SpinBox 也能改变SpinBox来改变Slider了。如下所示: ? ? 这样就算是完成了自定义控件的封装和使用。
QDial() dial.setNotchesVisible(True)#显示刻度 dial.setRange(0,100)#设置范围,默认0~99 spinbox =QSpinBox() spinbox.setRange(0,100)#范围须一致,否则槽连接后最大只能99 layout = QHBoxLayout() layout.addWidget(dial) layout.addWidget(spinbox) dial.valueChanged.connect(spinbox.setValue ) spinbox.valueChanged.connect(dial.setValue) self.setLayout(layout) self.setGeometry
目前,QT开发中常用的基础组件有以下几种:PushButton 按钮组件LineEdit 单行输入组件SpinBox 数值组件HorizontalSlider 滑块条组件LCDNumber 数码表与LCD 该组件有两个版本,SpinBox()用于显示整数与单精度浮点数,DoubleSpinBox()则是双精度浮点数,SpinBox有两个特殊参数,prefix参数是在前方加入特殊符号,而suffix则是在后方加入特殊符号 ); // 设置SpinBox数值(设置时无需转换) QString label_value = ui->label_10->text(); // 获取字符串 ui->label_10 SpinBox中的参数发生变化时自定的完成计算,这里就需要用到信号和槽了,当SpinBox被修改后,自动触发计算信号实现计算。 ui->spinBox,SIGNAL(valueChanged(int)),this,SLOT(on_pushButton_clicked())); QObject::connect(ui->spinBox
基于Qml的SpinBox控件修改而成。 轮选框代码 import QtQuick 2.0 import QtQuick.Controls 2.0 import QtGraphicalEffects 1.0 SpinBox { id "#FFBC00", "#2B99B9", "#5A6268", "#EEF2F7", "#212730", "#3498DB"] SpinBox
目前,QT开发中常用的基础组件有以下几种: PushButton 按钮组件 LineEdit 单行输入组件 SpinBox 数值组件 HorizontalSlider 滑块条组件 LCDNumber 数码表与 该组件有两个版本,SpinBox()用于显示整数与单精度浮点数,DoubleSpinBox()则是双精度浮点数,SpinBox有两个特殊参数,prefix参数是在前方加入特殊符号,而suffix则是在后方加入特殊符号 (total); // 设置SpinBox数值(设置时无需转换) QString label_value = ui->label_10->text(); // 获取字符串 ui- >label_10->setNum(total); // 设置label标签为数字 } 我们继续在SpinBox的基础上改进,如上代码中每次都需要点击计算按钮才能出结果 ,此时我们需求是实现当SpinBox中的参数发生变化时自定的完成计算,这里就需要用到信号和槽了,当SpinBox被修改后,自动触发计算信号实现计算。
self.label_file_path.setEnabled(False) labelBtn = QtWidgets.QPushButton("标签文件") self.conf_spinbox = QtWidgets.QDoubleSpinBox() self.conf_spinbox.setRange(0, 1) self.conf_spinbox.setSingleStep (0.01) self.conf_spinbox.setValue(0.25) grid_layout2 = QtWidgets.QGridLayout() grid_layout2.addWidget(QtWidgets.QLabel("置信:"), 1, 2) grid_layout2.addWidget(self.conf_spinbox
def change_table(self): ''' 作用:通过取值框的值改变表格行数 ''' cols = self.spinBox.value() if( 行显示 self.tableWidget.showRow(1) self.tableWidget.showRow(2) # QSpinBox值改变事件监听 self.spinBox.valueChanged.connect
由于 SpinBox 和 QDoubleSpinBox ⽤法基本相同,就只介绍 SpinBox 的使⽤了. 到 spinBox_3 ⼀个按钮: objectName 为 pushButton 2)编写代码, 修改 widget.cpp, 给下拉框设置初始值. ->setValue(1); ui->spinBox->setRange(1, 5); ui->spinBox_2->setValue(1); ui-> spinBox_2->setRange(1, 5); ui->spinBox_3->setValue(1); ui->spinBox_3->setRange(1, 5 << ui->comboBox_3->currentText() << ": " << ui->spinBox_3->value(); } 9.