Toon posts:

Waarom werkt code enkel in idle of in python? niet als exe

Pagina: 1
Acties:

Vraag


  • steven070
  • Registratie: Januari 2023
  • Laatst online: 30-01 23:46
Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import tkinter as tk
import tkinter.messagebox as messagebox

def cancel_program(license_window):
      exit()

def encrypt_script():
      exit()

def accept_license(license_window, rule1_var, rule2_var, rule3_var):
       if rule1_var.get() == 1 and rule2_var.get() == 1 and rule3_var.get() == 1:
          license_window.destroy()
          encrypt_script()
        else:
            messagebox.showerror("Error", "You must accept all the rules to proceed.")


def show_license():
      license_window = tk.Tk()
      license_window.title("License Agreement")
      license_text = "This is the license agreement text that needs to be displayed."
      label = tk.Label(license_window, text=license_text, justify="left")
      label.pack(padx=10, pady=10)
      rule1_var = tk.IntVar()
      rule2_var = tk.IntVar()
      rule3_var = tk.IntVar()
      rule1_checkbox = tk.Checkbutton(license_window, text="Accept Rule 1", variable=rule1_var)
      rule1_checkbox.pack()
      rule2_checkbox = tk.Checkbutton(license_window, text="Accept Rule 2", variable=rule2_var)
      rule2_checkbox.pack()
      rule3_checkbox = tk.Checkbutton(license_window, text="Accept Rule 3", variable=rule3_var)
      rule3_checkbox.pack()
      accept_button = tk.Button(license_window, text="Accept", 
      command=lambda:accept_license(license_window, rule1_var, rule2_var, rule3_var))
      accept_button.pack(side="left", padx=10, pady=10)
      cancel_button = tk.Button(license_window, text="Cancel", 
      command=lambda:cancel_program(license_window))
      cancel_button.pack(side="right", padx=10, pady=10)

show_license()


Dit is mijn code.
Deze code werkt in IDLE.
Deze code werkt als ik het direct in de pyton interpreter plak.
Roep ik echter het bestand aan vanuit de command prompt (test4.py) dan werkt het niet (ja ik zit in de goede map)
Compileer ik test4.py tot een .exe bestand dan krijg ik die netjes in de subfolder \dist\ gepresenteerd maar ook hier gebeurt er helemaal niks als ik het bestand open.

Is er iemand op deze planeet die het wel werkend krijgt?
Kan deze persoon mij ook vertellen waarom het bij mij niet werkt?
Ik heb veel ingewikkelder code succesvol omgezet naar .exe bestanden en die werken gewoon zoals het hoort.
Niet dat dat zo geweldig is, maar het is wel erg frustrerend dat zo een simpel stukje code niet werkt.
Als het werkt kan ik de inhoud aanpassen met de juiste informatie etc...

...

Relevante software en hardware die ik gebruik:
Python 3.10.9 op een laptop van DELL met 7e generatie i5 CPU draait op windows 10
...

Wat ik al gevonden of geprobeerd heb:
ik heb de hele app omgebouwd met PyQt dit werkt gewoon normaal maar i.p.v. 10 mb is mijn .exe nu 60 mb groot

de functie: def encrypt_script(): die leid momenteel ook tot een exit van het programma dit is om te testen maar hier moet eigenlijk een ander .py script aangeroepen worden, maar eerst wil ik weten waarom het enkel in IDLE of in de interpreter werkt maar niet als ik het omzet naar een .exe bestand of als ik test4.py open vanuit de command prompt.
'
Ook weet ik niet waarom alle spaties (indentations) eruit worden gehaald als ik de code hier post!

Voor degene die de moeite nemen om naar mijn probleem te kijken:
Hartelijk dank!!
...

[Voor 0% gewijzigd door Janoz op 26-01-2023 09:52. Reden: Code tags toegevoegd]

Beste antwoord (via steven070 op 26-01-2023 19:17)


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17:17

Janoz

Moderator Devschuur®

!litemod

Dan heb je hem niet op de juiste plek neergezet. Gokje, niet ingesprongen? Die regel moet immers wel onderdeel zijn van die def.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Alle reacties


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17:17

Janoz

Moderator Devschuur®

!litemod

Wat werkt niet en hoe werkt het niet? Gebeurt er niks, zie je een foutmelding, wat is dan die foutmelding?
Ook weet ik niet waarom alle spaties (indentations) eruit worden gehaald als ik de code hier post!
Dat kwam omdat je geen code tags gebruikte. Deze heb ik even voor je toegevoegd


--- Edit ---

Oh, ik zie dat je eerder ook al gewezen bent op het verduidelijken van je post en je vervolgens gewoon weer hetzelfde neergezet hebt. Dat is natuurlijk niet de bedoeling, maar voor deze keer geef ik je het voordeel odmat ik het te laat gezien heb. Maar als je niet meer informatie gaat geven over wat er fout gaat dan zal niemand je echt verder kunnen helpen..

[Voor 38% gewijzigd door Janoz op 26-01-2023 09:57]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • steven070
  • Registratie: Januari 2023
  • Laatst online: 30-01 23:46
Janoz dankjewel!!!

Hoe heb je dat gedaan??

Ik kon de code tags om dit voor elkaar te krijgen niet vinden.

Ik zeg je eerlijk de code werkt enkel vanuit IDLE of als ik het kopieer en plak in de python interpreter.
Als ik de code omzet naar een .exe en deze start of de .py bestand open vanuit de command prompt dan gebeurt er helemaal niks
Je ziet wel dat de machine "ff nadenkt" maar geen output geen foutmelding niks.
Ik snap niet waarom het wel werkt in python of in IDLE dan.

[Voor 0% gewijzigd door steven070 op 26-01-2023 10:04. Reden: hoofdletters en puntjes vergeten]


  • samo
  • Registratie: Juni 2003
  • Laatst online: 20:34

samo

yo/wassup

Als je bovenin je
code:
1
def show_license():

een regel toevoegt:
code:
1
print('tot hier werk het nog')

zou deze moeten verschijnen in je .exe. Gebeurt dat? Dan kan je die regel steeds een regel naar beneden verplaatsen totdat je vindt waar het stopt met werken.

Gebeurt dat niet? Dan zit het ergens anders. Bijvoorbeeld dat tkinter niet beschikbaar is op de plek waar je dit uitvoert.

Bekend van cmns.nl | ArneCoomans.nl | Het kindertehuis van mijn pa in Ghana


  • steven070
  • Registratie: Januari 2023
  • Laatst online: 30-01 23:46
Dat ga ik meteen proberen!

PS:
Het zou wel raar zijn als tkinter niet beschikbaar is want andere apps die tkinter gebruiken die werken wel
Ik test de .exe op dezelfde machine.
Heeft iemand anders de code wel succesvol tot een werkende .exe gekregen?

  • steven070
  • Registratie: Januari 2023
  • Laatst online: 30-01 23:46
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
def show_license():
      print('tot hier werk het nog')
      license_window = tk.Tk()
      print('tot hier werk het nog')
      license_window.title("License Agreement")
      print('tot hier werk het nog')
      license_text = "This is the license agreement text that needs to be displayed."
      print('tot hier werk het nog')
      label = tk.Label(license_window, text=license_text, justify="left")
      label.pack(padx=10, pady=10)
      rule1_var = tk.IntVar()
      rule2_var = tk.IntVar()
      rule3_var = tk.IntVar()
      rule1_checkbox = tk.Checkbutton(license_window, text="Accept Rule 1", variable=rule1_var)
      rule1_checkbox.pack()
      rule2_checkbox = tk.Checkbutton(license_window, text="Accept Rule 2", variable=rule2_var)
      rule2_checkbox.pack()
      rule3_checkbox = tk.Checkbutton(license_window, text="Accept Rule 3", variable=rule3_var)
      rule3_checkbox.pack()
      accept_button = tk.Button(license_window, text="Accept", 
      command=lambda:accept_license(license_window, rule1_var, rule2_var, rule3_var))
      accept_button.pack(side="left", padx=10, pady=10)
      cancel_button = tk.Button(license_window, text="Cancel", 
      command=lambda:cancel_program(license_window))
      cancel_button.pack(side="right", padx=10, pady=10)

show_license()
print('tot hier werk het nog')


Dit heb ik gedaan en ik krijg ze alle 5 te zien in de command prompt
Nu snap ik helemaal niet meer waarom het niet werkt.

Het .exe bestand wordt gemaakt m.b.v. pyinstaller:

Zowel: pyinstaller --onefile test4.py
als: pyinstaller --onefile --hidden-import tkinter test4.py
Beide met zelfde eindresultaat

[Voor 6% gewijzigd door steven070 op 26-01-2023 10:31. Reden: extra info]


  • steven070
  • Registratie: Januari 2023
  • Laatst online: 30-01 23:46
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import tkinter
print('tot hier werk het nog1')
import tkinter as tk
print('tot hier werk het nog2')
import tkinter.messagebox as messagebox
print('tot hier werk het nog3')

def cancel_program(license_window):
    print('tot hier werk het nog24')
    exit()

def encrypt_script():
    print('tot hier werk het nog25')
    exit()

def accept_license(license_window, rule1_var, rule2_var, rule3_var):
    if rule1_var.get() == 1 and rule2_var.get() == 1 and rule3_var.get() == 1:
        print('tot hier werk het nog26')
        license_window.destroy()
        encrypt_script()
    else:
        messagebox.showerror("Error", "You must accept all the rules to proceed.")
    


def show_license():
    print('tot hier werk het nog4')
    license_window = tk.Tk()
    print('tot hier werk het nog5')
    license_window.title("License Agreement")
    print('tot hier werk het nog6')
    license_text = "This is the license agreement text that needs to be displayed."
    print('tot hier werk het nog7')
    label = tk.Label(license_window, text=license_text, justify="left")
    print('tot hier werk het nog8')
    label.pack(padx=10, pady=10)
    print('tot hier werk het nog9')
    rule1_var = tk.IntVar()
    print('tot hier werk het nog10')
    rule2_var = tk.IntVar()
    print('tot hier werk het nog11')
    rule3_var = tk.IntVar()
    print('tot hier werk het nog12')
    rule1_checkbox = tk.Checkbutton(license_window, text="Accept Rule 1", variable=rule1_var)
    print('tot hier werk het nog13')
    rule1_checkbox.pack()
    print('tot hier werk het nog14')
    rule2_checkbox = tk.Checkbutton(license_window, text="Accept Rule 2", variable=rule2_var)
    print('tot hier werk het nog15')
    rule2_checkbox.pack()
    print('tot hier werk het nog16')
    rule3_checkbox = tk.Checkbutton(license_window, text="Accept Rule 3", variable=rule3_var)
    print('tot hier werk het nog17')
    rule3_checkbox.pack()
    print('tot hier werk het nog18')
    accept_button = tk.Button(license_window, text="Accept", command=lambda:accept_license(license_window, rule1_var, rule2_var, rule3_var))
    print('tot hier werk het nog19')
    accept_button.pack(side="left", padx=10, pady=10)
    print('tot hier werk het nog20')
    cancel_button = tk.Button(license_window, text="Cancel", command=lambda:cancel_program(license_window))
    print('tot hier werk het nog21')
    cancel_button.pack(side="right", padx=10, pady=10)
    print('tot hier werk het nog22')

show_license()
print('tot hier werk het nog23')


Ik krijg alle 23 print's terug maar het venster krijg ik niet.
Mischien kan iemand het ook proberen?

  • Ben(V)
  • Registratie: December 2013
  • Laatst online: 19:08
Python code moet laten uitvoeren door de python interperter
Dus:
code:
1
Python test4.py


Als je geen path naar python.exe hebt, dan moet je het hele path opgeven.

Ik ken idle niet maar vermoed dat het een eigen python omgeving heeft en waardoor het alleen vanuit idle werkt.
Als je een executeble maak zit er in die excutable een call naar de python interperter en dan krijg je dus hetzelfde probleem.

Is dat zo dan moet je eerst een normale distributie van python op je PC installeren en met pip de gewenste libraries zoals tkinker toevoegen.

[Voor 13% gewijzigd door Ben(V) op 26-01-2023 13:10]

All truth passes through three stages: First it is ridiculed, second it is violently opposed and third it is accepted as being self-evident.


  • steven070
  • Registratie: Januari 2023
  • Laatst online: 30-01 23:46
Ja dat klopt python test4.py voert het ook niet uit.
Ik krijg wel alle prints die ik ertussen heb gezet om te testen waar het fout gaat maar niet het venster.

Als ik eerst python intik en dan op enter druk
daarna de code uit test4.py erin plak dan werkt het wel.

Het probleem ligt niet aan de path instellingen, want ik kan python altijd aanroepen ongeacht welke map ik mij bevind en hetzelfde geld voor pyinstaller.

Mijn vraag blijft dus nog steeds waarom werkt de code wel vanuit IDLE of wanneer ik het in de python interpreter plak, maar niet wanneer ik test4.py uitvoer of een .exe bestand ervan maak en deze uitvoer

PS: Als je geen idle kent hoe kun je dan python code ontwikkelen?
Toen ik python heb geinstalleerd zat er alleen maar IDLE bij en de interpreter

  • RobIII
  • Registratie: December 2001
  • Laatst online: 19:26

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

steven070 schreef op donderdag 26 januari 2023 @ 13:29:
PS: Als je geen idle kent hoe kun je dan python code ontwikkelen?
Toen ik python heb geinstalleerd zat er alleen maar IDLE bij en de interpreter
IDLE is gewoon een "IDE"; er zijn tientallen alternatieven (zoals VS Code, Thonny, PyCharm, Eclipse, ...). Ik ken eigenlijk niemand die python ontwikkeld en IDLE gebruikt.

[Voor 16% gewijzigd door RobIII op 26-01-2023 13:35]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • steven070
  • Registratie: Januari 2023
  • Laatst online: 30-01 23:46
Ik weet dat IDLE een IDE is ik wist niet dat er ook andere IDE's zijn voor python

krijg je die ook standaard erbij als je python installeert?

  • RobIII
  • Registratie: December 2001
  • Laatst online: 19:26

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

steven070 schreef op donderdag 26 januari 2023 @ 13:36:
krijg je die ook standaard erbij als je python installeert?
Nee. Die kun je gewoon apart downloaden en installeren. Sommige komen wel met een python installatie (PyCharm volgens mij bijvoorbeeld, maar pin me d'r niet op vast).

Either way: Het zijn allemaal veredelde teksteditors; uiteindelijk kun je ook prima python ontwikkelen met notepad - maar dan mis je een boel gemakken van een IDE.

[Voor 19% gewijzigd door RobIII op 26-01-2023 13:38]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • Merethil
  • Registratie: December 2008
  • Laatst online: 21:37
steven070 schreef op donderdag 26 januari 2023 @ 13:29:
Ja dat klopt python test4.py voert het ook niet uit.
Ik krijg wel alle prints die ik ertussen heb gezet om te testen waar het fout gaat maar niet het venster.

Als ik eerst python intik en dan op enter druk
daarna de code uit test4.py erin plak dan werkt het wel.

Het probleem ligt niet aan de path instellingen, want ik kan python altijd aanroepen ongeacht welke map ik mij bevind en hetzelfde geld voor pyinstaller.

Mijn vraag blijft dus nog steeds waarom werkt de code wel vanuit IDLE of wanneer ik het in de python interpreter plak, maar niet wanneer ik test4.py uitvoer of een .exe bestand ervan maak en deze uitvoer

PS: Als je geen idle kent hoe kun je dan python code ontwikkelen?
Toen ik python heb geinstalleerd zat er alleen maar IDLE bij en de interpreter
Je geeft aan dat je andere (veel uitgebreidere) python scripts wél hebt kunnen omzetten. Misschien deze en die eens vergelijken om te zien waar het verschil zit?

Ik kan herinneren dat er tijdenlang iets in de richting van
Python:
1
2
if __name__ == "__main__":
    roep_hier_je_functie_aan()

nodig was om de juiste aanroep te laten plaatsvinden als je een pythonmodule aanroept vanuit de cli.

  • steven070
  • Registratie: Januari 2023
  • Laatst online: 30-01 23:46
@RobIII
Ah duidelijk!
Tnx voor de info.

IDLE is af en toe erg traag, dat wel, vooral als je een lange base64 value in je code hebt. Kan je effe koffie gaan zetten af laten koelen en opdrinken voordat hij het einde van je regel heeft bereikt.

Ik sla mijn werk op en open het bestand in kladblok doe de aanpasingen weer oplsaan en dan weer in IDLE openen als ik snel verder wil.

[Voor 1% gewijzigd door steven070 op 26-01-2023 13:45. Reden: hoofdletters, leestekens en puntjes vergeten]


  • RobIII
  • Registratie: December 2001
  • Laatst online: 19:26

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Merethil schreef op donderdag 26 januari 2023 @ 13:40:
Ik kan herinneren dat er tijdenlang iets in de richting van
Python:
1
2
if __name__ == "__main__":
    roep_hier_je_functie_aan()

nodig was om de juiste aanroep te laten plaatsvinden als je een pythonmodule aanroept vanuit de cli.
Dat is volgens mij zelfs best practice.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • steven070
  • Registratie: Januari 2023
  • Laatst online: 30-01 23:46
@Merethil

Ja deze regels heb ik in de andere versie van ditzelfde programma.
In deze versie gebruik ik PyQt om het venster te bouwen ipv Tkinter.

Maar PyQt in je code gebruiken en omzetten naar een .exe resulteert in een .exe van 60 mb ipv 10 mb
en 60mb voor een license window vinid ik erg veel

  • Merethil
  • Registratie: December 2008
  • Laatst online: 21:37
steven070 schreef op donderdag 26 januari 2023 @ 13:49:
@Merethil

Ja deze regels heb ik in de andere versie van ditzelfde programma.
In deze versie gebruik ik PyQt om het venster te bouwen ipv Tkinter.

Maar PyQt in je code gebruiken en omzetten naar een .exe resulteert in een .exe van 60 mb ipv 10 mb
en 60mb voor een license window vinid ik erg veel
Hoe ziet de oude versie met PyQt eruit dan? Graag een klein voorbeeld, strip alle overbodige code (b.v. het aanmaken van labels e.d.) er even uit om het overzichtelijk te houden

  • steven070
  • Registratie: Januari 2023
  • Laatst online: 30-01 23:46
@Merethil
de versie met Pyqt is niet de oude versie ik moest het werkend krijgen daarom heb ik het helemaal opnieuw gedaan en Tkinter achterwege gelaten ik kan je de volledige code geven met PyQt
maar om terug te komen op je vorige opmerking ik heb die regel toegevoegd aan mijn code met hetzelfde resultaat, namenlijk:
Als ik python test4.py intik gebeurt er anders dan de print values weergeven worden niets
Als ik test4.py open in kladblok en dezelfde code kopieer en plak in de python interpreter dan werkt het gewoon normaal.
Naast dat ik de print values krijg, krijg ik ook het venster te zien en alle attributen die erbij horen.

Het lijkt mij niet dat python test4.py een ander resultaat zou mogen geven dan:
python openen vanuit cli en dan de code van test4.py erin plakken.

Als je nog de versie met PyQt wilt zien laat maar weten dan post ik die

[Voor 10% gewijzigd door steven070 op 26-01-2023 14:18]


Acties:
  • +1Henk 'm!
  • Pinned

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17:17

Janoz

Moderator Devschuur®

!litemod

Als ik je probleem google kom ik dit tegen:

https://stackoverflow.com...module-not-showing-output

Probeer dus eens een

code:
1
license_window.mainloop()


aan het einde van je show_license

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Jory
  • Registratie: Mei 2006
  • Laatst online: 20:41
Je moet, volgens mij, op het einde van show_license(), license_window.mainLoop() aanroepen. Dit omdat Tk (of Tcl/Tk) een wat ander threading model heeft als Python; mainLoop() die zorgt dat Tk z'n events kan afhandelen e.d.
Zie https://docs.python.org/3...nter.html#threading-model

Waarom het in IDLE dan wel werkt? IDLE zelf is geschreven in Tk, dus daar zal mainLoop() onder water al uitgevoerd worden of zo.

Edit: Ah, Janoz was me voor. :P

[Voor 3% gewijzigd door Jory op 26-01-2023 14:21]


  • steven070
  • Registratie: Januari 2023
  • Laatst online: 30-01 23:46
@Janoz

Daar had ik zelf ook al aan gedacht maar in mijn IDE (IDLE) krijg ik dan de volgende error:
Traceback (most recent call last):
File "C:\blablabla\unfinished\test4.py", line 66, in <module>
license_window.mainloop()
NameError: name 'license_window' is not defined

Hij voert de rest van de code wel uit overigens

[Voor 8% gewijzigd door steven070 op 26-01-2023 14:22]


  • steven070
  • Registratie: Januari 2023
  • Laatst online: 30-01 23:46
@Jory
ok maar waarom werkt de code wel als ik python.exe uitvoer en de code erin plak
en niet als ik de code opsla en dan aanroep met diezelfde python.exe?

Acties:
  • Beste antwoord
  • +1Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17:17

Janoz

Moderator Devschuur®

!litemod

Dan heb je hem niet op de juiste plek neergezet. Gokje, niet ingesprongen? Die regel moet immers wel onderdeel zijn van die def.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • steven070
  • Registratie: Januari 2023
  • Laatst online: 30-01 23:46
@Janoz
Getting closer!!

ok ik heb dat gedaan en nu ga ik het weer proberen w8 ff

  • steven070
  • Registratie: Januari 2023
  • Laatst online: 30-01 23:46
@Janoz
Je hebt mijn probleem verholpen
Nu werkt die shizzle eindelijk

Dankjewel Janoz!!!!

  • jammo
  • Registratie: November 2020
  • Laatst online: 14:00
steven070 schreef op donderdag 26 januari 2023 @ 14:26:
@Jory
ok maar waarom werkt de code wel als ik python.exe uitvoer en de code erin plak
en niet als ik de code opsla en dan aanroep met diezelfde python.exe?
Omdat als jij python.exe uitvoert en daarin je code plakt, dan blijft python draaien op het einde van jouw script.
Echter, als je python.exe jouwcript.py gebruikt dan wordt python gestopt op het einde van je script omdat hij dan klaar is.
De eventloop die je nu start is een oneindige loop, die zorgt er dus onder andere voor dat je script nooit klaar is (en je dus de UI kunt zien).

  • steven070
  • Registratie: Januari 2023
  • Laatst online: 30-01 23:46
@jammo
Dat is een duidelijke uitleg en een logische verklaring voor wat er gebeurde!
Dankjewel voor het uitleggen want ik bleef me toch afvragen waarom het in de ene situatie wel werkte en in de andere niet.
Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee