Avatar billede chrishunter Nybegynder
28. august 2011 - 16:42 Der er 4 kommentarer

Python: kalde en procedure i hovedfilen fra en anden fil, hvordan?

Jeg er igang med at lave en Qt4-app. i Phyton.

Jeg har et hovedprogram.py med en procedure udskriv():

  #!/usr/bin/python
  # -*- coding: utf-8 -*-

  from PyQt4 import QtCore, QtGui

  ...

  def udskriv():
    ...

  if __name__ == "__main__":
      import sys
      app = QtGui.QApplication(sys.argv)
      ui = MainWindow()

      ...

      ui.show()
      sys.exit(app.exec_())

Og så har jeg bl.a. filen mainwindow.py (som Qt Designer har oprettet, og som jeg helst kun vil lave små ændringer i - såsom at kalde en procedure i en anden fil):

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

  from PyQt4.QtGui import QMainWindow
  from PyQt4.QtCore import pyqtSignature
  from Ui_mainwindow import Ui_MainWindow

  class MainWindow(QMainWindow, Ui_MainWindow):
      ...

      @pyqtSignature("bool")
      def on_btnUdskriv_clicked(self, checked):
          udskriv()
      ...

Men det virker ikke. Så hvordan får jeg en procedure mainwindow.py til at kunne se proceduren(e) i hovedprogram.py?

Venlig hilsen
Christian
Avatar billede arne_v Ekspert
06. september 2011 - 01:55 #1
Nu er jeg ren begynder i Python, men:

sub.py

def p1():
  print "I am p1"

def p2():
  print "I am p2"


main.py

from sub import p1
from sub import p2
p1()
p2()


virker hos mig.
Avatar billede chrishunter Nybegynder
07. september 2011 - 05:31 #2
Det var også nogenlunde sådan, jeg endte med at gøre. Jeg lavede en tredie fil svarende til din sub.py..

Men kan jeg også kalde en procedure fra main.py?
Avatar billede arne_v Ekspert
07. september 2011 - 14:47 #3
Hvis sub.py lavede en:
  from main import xyz
burde den kunne kalde xyz i main,
Avatar billede arne_v Ekspert
14. oktober 2011 - 23:58 #4
OK?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester