pyqt4 怎么获取tablewidget中comboBox控件的值

pyqt4 怎么获取tablewidget中comboBox控件的值,第1张

以下方法实现PyQt5 中 QListWidget 获取 item 中 combox 的当前显示的值:

(1)在Visual Studio中新建一个“Windows 窗体应用程序”项目

(2)在项目中添加一个类MyItem。这个类有两个用途:

在ComboBox中显示

用于检索被选中项的值

MyItem.cs代码

namespace WindowsFormsApplication1

{

class MyItem

{

public MyItem(string name, int value)

{

Name = name

Value = value

}

public string Name { getprivate set}

public int Value { getprivate set}

}

}

(3)在Form1上布置一个ComboBox、一个Label

(4)窗体代码 Form1.cs

using System

using System.Collections.Generic

using System.Windows.Forms

namespace WindowsFormsApplication1

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent()

}

private void Form1_Load(object sender, EventArgs e)

{

// 清空lable1

label1.Text = string.Empty

// 列表集合将作为comboBox1的数据源

List<MyItem>list = new List<MyItem>()

list.Add(new MyItem("张三", 10))

list.Add(new MyItem("李四", 20))

list.Add(new MyItem("王五", 30))

// 绑定

comboBox1.DataSource = list

// 在comboBox1中显示MyItem的Name属性

comboBox1.DisplayMember = "Name"

}

// 获取被选中项的Value值

private void comboBox1_SelectedIndexChanged(

object sender,

EventArgs e)

{

// 将被选中的项目强制转换为MyItem

MyItem item = comboBox1.SelectedItem as MyItem

// 显示被选中项的值

label1.Text = string.Format("Value = {0}", item.Value)

}

}

}

(5)运行,程序启动后,改变comboBox1选择

for I := 1 to 6 do

with TComboBox.Create(self) do begin

Name :='jb_xx1_' + InttoStr(I)

Parent := Self.TabSheet2

Top := 27*(i-1)+3

Left := length(jb_txt[i])*6+30

Height := 2

font.Name := 'Arial'

font.Size :=8

// 添加数据

for j:1 to ADOQuery1.RecordCount do

begin

Items.Add(ADOQuery1.FeildByName('comboboxItems').AsString)

end

// 添加结束,将默认显示设为显示第一项

ItemIndex := 0

show

end

上面是从数据库读取数据添加(记得打开和关闭连接就行)。要是有固定的值就更简单了,直接添加就OK。你都创建完控件了,添加数据不很简单吗。你是还有什么要求吗

以users表为例,有三个字段,自增长的编号id,int类型;名称name,nvarchar类型,密码pwd,nvarchar类型

首先在vs2005中引入using System.Data.SqlClient命名空间

/// 查询

/// </summary>

/// <returns></returns>

public DataTable Select()

{

SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESSInitial Catalog=TestIntegrated Security=True")//Initial Catalog后面跟你数据库的名字,如果你的SqlServer服务器名称后面不带SQLEXPRESS,那么Data Source=.

conn.Open()

string sql = "select * from users"

SqlCommand cmd = new SqlCommand(sql, conn)

SqlDataAdapter sda = new SqlDataAdapter(cmd)

DataTable dt = new DataTable()

sda.Fill(dt)

conn.Close()

cmd.Dispose()

return dt

}

方法写好后,在form窗体中拖一个comboBox,然后在Load方法中

private void Form1_Load(object sender, EventArgs e)

{

comboBox1.DataSource = Select()//绑定数据

comboBox1.DisplayMember="name"//下拉列表中显示的是你数据库中name的值

comboBox1.ValueMember ="id"//这个一般绑定的是id,增加删除之用。这个属性也可不设

}

这样一运行,comboBox中就会显示数据了!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11539699.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存