Bauhaus
Well-known member
Ik wil dus een eenvoudig python script uitvoeren in een c# project in vs2022.
Het script toont een venster met een label en een button, maar in mijn project toont hij enkel het venster maar niet het label of de button.
python code:
c# code:
Het rare is dat hij wel dat venster toont maar niet de controls, je zou verwachten dat het alles of niets is.
Het script toont een venster met een label en een button, maar in mijn project toont hij enkel het venster maar niet het label of de button.
python code:
Python:
import tkinter as tk
def button_clicked():
label.config(text="Button Clicked!")
root = tk.Tk()
root.title("Tkinter Example")
label = tk.Label(root, text="Hello, Tkinter!")
label.pack()
button = tk.Button(root, text="Click Me", command=button_clicked)
button.pack()
root.mainloop()
c# code:
C#:
using System;
using System.Diagnostics;
using System.Windows.Forms;
namespace cytopywin2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void ExecutePythonScript()
{
string pythonPath = @"C:\Users\PC\AppData\Local\Microsoft\WindowsApps\python3.11.exe";
string pythonScriptPath = @"D:\PythonScripts\tkinter-example.py";
ProcessStartInfo psi = new ProcessStartInfo
{
FileName = pythonPath,
Arguments = pythonScriptPath,
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true
};
using (Process process = new Process())
{
process.StartInfo = psi;
process.OutputDataReceived += Process_OutputDataReceived;
process.Start();
process.BeginOutputReadLine();
process.WaitForExit();
}
}
private void Process_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
if (!string.IsNullOrEmpty(e.Data))
{
textBoxOutput.Invoke(new Action(() =>
{
textBoxOutput.AppendText(e.Data + Environment.NewLine);
}));
}
}
private void buttonRunPython_Click(object sender, EventArgs e)
{
ExecutePythonScript();
}
}
}
Het rare is dat hij wel dat venster toont maar niet de controls, je zou verwachten dat het alles of niets is.