Showing posts with label python. Show all posts
Showing posts with label python. Show all posts

Oct 6, 2009

How to package the PyQt with VTK application

1. Download py2exe from http://sourceforge.net/projects/py2exe/files/
(Download the version that corresponds with your python version.)
2. Follow instructions from http://www.py2exe.org/index.cgi/Tutorial

Basically, you need a file called setup.py, like this:
from distutils.core import setup
import py2exe
setup(console=['runui12.py'])

Then run this line in command line:
vtkpython setup.py py2exe

Extra Tags: How to make executable run standalone pyqt qt vtk app application

Sep 15, 2009

Python loop and modify list

When working with lists, don't modify them as you iterate through.
For example, if you need to remove empty strings in your list, don't delete the strings as you find them, as your loop is still iterating, and some items might be looped through twice, or not at all.

Solution:
Write out another list, or another variable to keep track of what your loop is trying to achieve.

Extra Tags:
Remove whitespace empty string list iterate modify for loop

Sep 3, 2009

-1 is true (if loops)

In programming (at least in python), all values except 0, empty strings, etc is true.
That is, if your expression returns something like '-1', your code inside the if loop is still run.

E.g.
myString = 'Hello World'
if myString.find('bye'):
print('I found bye.')

Output:
> I found bye.

This is because the .find command returns '-1', which is 'true'.

Instead, you need to replace the if statement to something like so:
if (myString.find('bye') != -1):

(Thanks to Stephen Hansen.)

QStrings and Strings

In Qt, QFileDialog can be used to open up a filedialog window. QFileDialog's static methods allows the GUI to capture the directory/file name that the user chooses. From that, a QString is returned.

My problem was that I wanted to find a certain string in the filename, but it was a QString, and not a string. I found that...

to convert a qstring to string, use the str function.

stringB = str(stringA)

In this situation, stringB will be the string version of stringA, which is of type QString. By the way, str works on integers as well.

PyQt Documentation on Qfiledialog

Sep 2, 2009

Backslashes and Forward slashes

Windows requires that paths are written with backslashes (\). If your path is currently forward slashed (/), you just need to use:
path_better = path.replace('/','\\')
To convert the forward slashes to backward ones. Note that the reason why I used TWO backslashes is because the single backslash escapes special characters (except in raw strings).
Of course, if what you need is to convert from backward to forward slash, just swap the order in the brackets. That is --> ('\\','/')

Tags: Converting Convert backward forward slash slashes

Jul 27, 2009

How to call (or execute) a python file from another

Simply type in the following 2 lines of code in your python file (e.g. main.py), to call another python file (e.g test.py).

#Specify the path of the file you want to execute. E.g:
file_path = 'C:\\test.py'
#Execute the file using execfile
execfile(file_path)

Copied from:

Jul 26, 2009

How to Install VTK for use with Python

I am installing VTK, which I will need to incorporate 3D visualisation in my GUI. I am designing my GUI in Qt, and programming with Python. (Hence, PyQt). To make VTK work with Python, you need to install from binaries, instead of downloading with the windows installer. Feel free to make comments, or ask questions. (I'm not an expert. I am actually a beginner, but I want to document my problems and solutions so that others can be benefited. So feel free to talk here, as it might help others too.)

Download and install:
Cmake(
http://www.cmake.org/cmake/resources/software.html)
Python(
http://www.python.org/download/releases/)

Download and unzip into a file (we will call this the source file):
VTK(http://www.vtk.org/VTK/resources/software.html): Source: vtk-5.4.2.zip (Don't use the windows installer, because then you can't use Python.)

Then follow these steps:

1. Open the Cmake 2.6 GUI, and type in the path for the source file, and also where you would like to store the binary files.
Source: C:/Qt/vtk-5.4.2 (I have unzipped the source file into this directory called vtk-5.4.2, which is in my 'Qt' folder. Type in the path for your source file.)
Binary: C:/Qt/VTKbin7 (This is an empty folder, into which Cmake will put binaries.)
>Configure
>Choose Visual Studio 8 2005 as generator
>Turn on these (in the red lines): BUILD_SHARED_LIBS and VTK_WRAP_PYTHON
>Configure
>Generate

2. Open Visual Studio;
Open File;
Find the folder where Cmake has put your binaries. E.g. C:/Qt/VTKbin7
Open VTK.sln

3. >Build >Configuration Manager >Active solution configuration
>Choose ‘Release’
>Ok

4. >Build
>Build Solution
This will take more than an hour.

5. Now you should be able to find ‘vtkpython.exe’ in your bin/release file. E.g. C:/Qt/VTKbin7/bin/release


Now go to Embedding VTK into a PyQt GUI