小编use*_*854的帖子

PyQT:如何打开新窗口

首先,之前已经回答了类似的问题,但我需要一些帮助.

我有一个窗口,其中包含一个按钮(第一类),我想按下,第二个空白窗口出现(第二类).

我摆弄了从这个问题复制的代码:点击打开新窗口的PyQT,我写了这段代码:

# -*- coding: utf-8 -*-

from PyQt4 import QtGui, QtCore
import sys
import design1, design2

class Second(QtGui.QMainWindow, design2.Ui_MainWindow):
    def __init__(self, parent=None):
        super(Second, self).__init__(parent)
        self.setupUi(self)

class First(QtGui.QMainWindow, design1.Ui_MainWindow):
    def __init__(self, parent=None):
        super(First, self).__init__(parent)
        self.setupUi(self)

        self.pushButton.clicked.connect(self.on_pushButton_clicked)
        self.dialog = Second(self)

    def on_pushButton_clicked(self):
        self.dialog.exec_()

def main():
    app = QtGui.QApplication(sys.argv)
    main = First()
    main.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()  
Run Code Online (Sandbox Code Playgroud)

但是on_pressed,会出现以下错误消息:

AttributeError: 'Second' object has no attribute 'exec_'
Run Code Online (Sandbox Code Playgroud)

(design1和design2来自Qt设计师.)

任何想法将不胜感激.

python pyqt pyqt4

12
推荐指数
1
解决办法
5万
查看次数

如何将CSS应用于GTK +代码?

我开始摆弄GTK +,直到我尝试修改旋转按钮小部件:

GTK +将字体更改为旋转按钮

我不太明白答案,但我开始寻找CSS并尝试代码示例.最后,经过一些谷歌搜索和复制/粘贴代码,特别是从这里如何设置一个特定的CSS类到gtk3中的小部件?(c),这是我设法做的没有语法或其他错误:

test.c的

#include <gtk/gtk.h>
#include <string.h>  

static void
activate (GtkApplication *app, gpointer user_data) {
  GtkStyleContext *context;
  GtkWidget *button_01;
  GtkWidget *button_02;
  button_01 = gtk_button_new_with_label("This is a simple button");
  button_02 = gtk_button_new_with_label("This is a stylish button");
  context = gtk_widget_get_style_context(button_02);
  gtk_style_context_add_class(context, "my_style");

  GtkWidget *window;
  GtkWidget * main_box;

  window = gtk_application_window_new (app);
  main_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 25);

  gtk_box_set_homogeneous (GTK_BOX (main_box), TRUE);
  gtk_container_add (GTK_CONTAINER (window), main_box);
  gtk_container_add (GTK_CONTAINER (main_box), button_01);
  gtk_container_add (GTK_CONTAINER (main_box), button_02);

  gtk_widget_show_all (window);
}

int main …
Run Code Online (Sandbox Code Playgroud)

css c gtk

10
推荐指数
1
解决办法
887
查看次数

kivy,如何通过文本更改触发事件

一些GUI工具箱包含事件,例如,on_change每次文本框中的文本更改时都会触发这些事件。

根据这样的: https://kivy.org/docs/api-kivy.uix.textinput.htmlon_text事件应该是平等的。因此,我创建了一个TextInput框,期望每次更改一个字母时,该框的内容就会显示在终端中。这是代码:

from kivy.app import App
from kivy.uix.textinput import TextInput
from kivy.uix.boxlayout import BoxLayout

class LoginScreen(BoxLayout):

    def __init__(self, **kwargs):
        super(LoginScreen, self).__init__(**kwargs)
        self.orientation = 'horizontal'
        self.mytext = TextInput(text='500', multiline = False)
        self.add_widget(self.mytext)

        self.mytext.bind(on_text = self.calc)
        #self.mytext.bind(on_text_validate = self.calc)

    def calc(self, mytext):
        print mytext.text

class MyApp(App):

    def build(self):
        return LoginScreen()

if __name__ == '__main__':
    MyApp().run()
Run Code Online (Sandbox Code Playgroud)

但是,什么也没有发生,这显然意味着该calc功能根本没有被触发。请注意,该on_text_validate事件运行正常,因为当我按Enter键时,该框的内容已打印在终端中。

那么,我是否误解了on_text活动,如果是,我该如何实现自己的目标?

python kivy

4
推荐指数
1
解决办法
2210
查看次数

python类:有关创建实例的问题

我正在使用python 2.7,我想使用类创建某种数据结构

问题A:

假设我创建了这个类:

class my_data():
   def __init__(self,data1,data2,data3):
      self.data1 = data1
      self.data2 = data2
      self.data3 = data3
Run Code Online (Sandbox Code Playgroud)

之后我创建了一些类的实例,例如

d1 = my_data(1,2,None)
d2 = my_data(4,5,d1)
d3 = my_data(7,8,d2)
Run Code Online (Sandbox Code Playgroud)

如您所见,data3可能是None或实例.到现在为止还挺好.

现在,让我们再次尝试创建一些其他实例(艰难的方式):

d2 = my_data(4,5,d1)
d1 = my_data(1,2,None)
d3 = my_data(7,8,d2)
Run Code Online (Sandbox Code Playgroud)

在这种情况下会发生NameError异常,因为显然在行d2 = my_data(4,5,d1)中,d1尚未定义.

所以,这里有一个问题:我想创建data3应该是None或实例的实例.如果data3为None或现有实例,则没问题.但是如果data3引用了一个未实现的实例,我希望创建该实例.

例如:d2 = my_data(4,5,d1)

如果d1不存在,我想作为虚拟实例启动d1 = my_data(None,None,None),之后,d2也要启动

我试过这个,但似乎没有做到这一点:

class my_data():
   def __init__(self,data1,data2,data3):
      self.data1 = data1
      self.data2 = data2
      try:
         self.data3 = data3
      except:
         data3 = my_data(None,None,None)
     self.data3 = data3
Run Code Online (Sandbox Code Playgroud)

问题B:

假设我们以某种方式创建了类的一些实例(d1,d2,d3,...).如何将实例存储在类中的列表中,以便在此类中创建的每个实例都包含在列表中?

类似my_data.my_list()的东西会生成[d1,d2,d3,...]

任何想法将不胜感激

python class

2
推荐指数
1
解决办法
402
查看次数

pyQt:radioButton.isChecked()被执行两次

我有一个从Qt Designer派生的简单窗口(design.py),该窗口包含三个单选按钮:

# -*- coding: utf-8 -*-

from PyQt4 import QtCore, QtGui

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s

try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName(_fromUtf8("MainWindow"))
        MainWindow.setEnabled(True)
        MainWindow.resize(158, 110)
        self.centralwidget = QtGui.QWidget(MainWindow)
        self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
        self.myradioButton1 = QtGui.QRadioButton(self.centralwidget)
        self.myradioButton1.setGeometry(QtCore.QRect(20, 10, 102, 22))
        self.myradioButton1.setObjectName(_fromUtf8("myradioButton1"))
        self.myradioButton2 = QtGui.QRadioButton(self.centralwidget)
        self.myradioButton2.setGeometry(QtCore.QRect(20, 40, 102, 22))
        self.myradioButton2.setObjectName(_fromUtf8("myradioButton2"))
        self.myradioButton3 = QtGui.QRadioButton(self.centralwidget)
        self.myradioButton3.setGeometry(QtCore.QRect(20, …
Run Code Online (Sandbox Code Playgroud)

python pyqt pyqt4

1
推荐指数
1
解决办法
3245
查看次数

如何使用CSS代码分别设置gtk小部件的样式

在此GTK +之后将字体更改为旋转按钮,这如何将CSS应用于GTK +代码?问题,我开始理解如何将CSS样式应用于GTK代码,但是仍然有很多令人困惑的细节。

这是我用来创建两个按钮和三个标签的代码:

测试

#include <gtk/gtk.h>
#include <string.h>  

static void
activate (GtkApplication *app,
          gpointer        user_data)
{

  GtkWidget *window = gtk_application_window_new (app);;
  GtkWidget *button_01 = gtk_button_new_with_label("This is button 01");
  GtkWidget *button_02 = gtk_button_new_with_label("This is button 02");
  GtkWidget *label0 = gtk_label_new("hello 0");
  GtkWidget *label1 = gtk_label_new("hello 1");
  GtkWidget *label2 = gtk_label_new("hello 2");
  GtkWidget * main_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 25);

  GtkCssProvider *cssProvider = gtk_css_provider_new();
  gtk_css_provider_load_from_path(cssProvider, "theme.css", NULL);
  gtk_style_context_add_provider_for_screen(gdk_screen_get_default(),
                               GTK_STYLE_PROVIDER(cssProvider),
                               GTK_STYLE_PROVIDER_PRIORITY_USER);

  gtk_box_set_homogeneous (GTK_BOX (main_box), TRUE);
  gtk_container_add (GTK_CONTAINER (window), main_box); …
Run Code Online (Sandbox Code Playgroud)

css c gtk gtk3

1
推荐指数
1
解决办法
5075
查看次数

标签 统计

python ×4

c ×2

css ×2

gtk ×2

pyqt ×2

pyqt4 ×2

class ×1

gtk3 ×1

kivy ×1