wxpython wx.combobox save wx.StaticText view帮帮我

时间:2017-05-22 08:23:23

标签: sqlite wxpython

#include <stdio.h>
#include <cuda_runtime.h>

#define THREADS_PER_BLOCK 16

__global__ void reduce1(int *g_idata, int *g_odata) {
    extern __shared__ int sdata[];
    // each thread loads one element from global to shared mem
    unsigned int tid = threadIdx.x;
    unsigned int i = blockIdx.x*blockDim.x + threadIdx.x;
    sdata[tid] = g_idata[i];
    __syncthreads();

    // do reduction in shared mem
    for(unsigned int s=1; s < blockDim.x; s *= 2) 
    {
        if (tid % (2*s) == 0) sdata[tid] += sdata[tid + s];
            __syncthreads();
    }

    // write result for this block to global mem
    if (tid == 0) g_odata[blockIdx.x] = sdata[0];
}

int main()
{
    int inputLength=16;
    int hostInput[16]={10,1,8,-1,0,-2,3,5,-2,-3,2,7,0,11,0,2};
    int hostOutput=0;
    int *deviceInput;
    int *deviceOutput;

    cudaMalloc((void **)&deviceInput, inputLength * sizeof(int));
    cudaMalloc((void **)&deviceOutput, sizeof(int));

    cudaMemcpy(deviceInput, hostInput, inputLength * sizeof(int),cudaMemcpyHostToDevice);

    reduce1<<<1,THREADS_PER_BLOCK>>>(deviceInput, deviceOutput);

    cudaDeviceSynchronize();

    cudaMemcpy(&hostOutput, deviceOutput,sizeof(int), cudaMemcpyDeviceToHost);

    printf("%d\n",hostOutput);

    cudaFree(deviceInput);
    cudaFree(deviceOutput);

    return 0;
}

组合框数据sqlite3保存为什么面板显示为什么它看起来不同bug? 我不知道为什么会这样。

enter image description here

1 个答案:

答案 0 :(得分:0)

你错过了一个至关重要的步骤,获取数据本身 您正在使用游标对象而不是游标返回的数据。

def LoadList(self):
    self.cursor.execute("SELECT *FROM CLINIC1")
    data = self.cursor.fetchall()
    for date1 in data: pass
    self.staticText2_1 = wx.StaticText(self.panel, label=date1[1], style=wx.ALIGN_CENTER, pos=(100,100))

你是&#34;传递&#34;在您的for loop中,您实际想要的只是一条记录,在这种情况下

data = self.cursor.fetchone()

并删除for loop

更好的是,阅读教程

https://www.blog.pythonlibrary.org/2012/07/18/python-a-simple-step-by-step-sqlite-tutorial/

在你的问题的标题中你提到了组合框,所以我假设你想用一个组合框替换statictext。以下内容应该让您开始,我将保留wx.EVT_COMBOBOX事件绑定供您添加,因为您在选择项目时需要它来执行某些操作。

import wx
import sqlite3

class Frame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None)
        self.selected_data=[]
        self.panel = wx.Panel(self)
        self.combo = wx.ComboBox(self.panel,-1,choices=self.selected_data, size=(130,30))

        self.conn = sqlite3.connect("test.db")
        self.cursor =  self.conn.cursor()
        self.combo.SetValue("Choose an Item")
        self.autoRefresh()

    def autoRefresh(self):
        self.LoadList()

    def LoadList(self):
        self.combo.Clear()
        self.cursor.execute("SELECT * FROM CLINIC1")
        data = self.cursor.fetchall()
        for date1 in data:
            self.selected_data.append(date1[1])
        for i in self.selected_data:
            self.combo.Append(i)

if __name__ == '__main__':
    app = wx.App()
    frame = Frame()
    frame.Show()
    app.MainLoop() 

编辑:
它看起来应该是这样的。What is should look like