Fatti: A. Con contratto dell'8 luglio 2009 la A._ AG ha venduto a B._ e C._ un appartamento di uno stabile in costruzione a Caslano. Il prezzo è stato pattuito in fr. 1'010'000.--, da pagarsi in due rate: una di fr. 500'000.-- alla firma del contratto e una di fr. 510'000.-- alla consegna, secondo modalità sulle quali si tornerà. Il contratto fissava la consegna dell'appartamento al 15 dicembre 2010, escluse le opere esterne e l'ascensore, e prevedeva una pena convenzionale di fr. 150.-- per ogni giorno di ritardo. B. Il 10 maggio 2013 gli acquirenti hanno convenuto in giudizio la venditrice davanti alla Pretura di Lugano, chiedendo che fosse condannata a pagare loro una somma quantificata in fr. 123'145.30 in sede conclusiva; si trattava della pena convenzionale corrispondente a 641 giorni di ritardo nella consegna, del risarcimento di maggiori costi di vario genere e delle spese legali preprocessuali, dedotto il costo delle opere supplementari; gli attori chiedevano inoltre il rigetto definitivo dell'opposizione a un precetto esecutivo. Non è necessario esporre più dettagli perché quest'azione non è oggetto di ricorso al Tribunale federale. La venditrice si è opposta alla petizione e in via riconvenzionale ha chiesto che gli attori fossero condannati solidalmente a pagarle il saldo del prezzo di fr. 135'000.-- ancora trattenuto dal notaio, fr. 34'143.30 per i lavori supplementari effettuati e fr. 2'876.-- di interessi di mora per il ritardo nel pagamento della prima rata del prezzo; anch'essa ha inoltre chiesto il rigetto definitivo delle opposizioni a due precetti esecutivi. C. Con decisione del 5 dicembre 2017 il Pretore ha accolto parzialmente la petizione, condannando la venditrice a pagare fr. 48'790.-- e respingendo la domanda di rigetto definitivo dell'opposizione. Il Pretore ha accolto parzialmente anche l'azione riconvenzionale: ha condannato gli acquirenti a pagare fr. 137'876.--, costituiti dal saldo del prezzo d'acquisto di fr. 135'000.-- e dagli interessi di ritardo sulla prima rata di fr. 2'876.--. Entrambe le parti hanno adito il Tribunale di appello ticinese; gli attori con appello principale, la convenuta con appello incidentale. La II Camera civile si è pronunciata con sentenza del 17 luglio 2019. Ha riformato il giudizio del Pretore sull'azione principale limitatamente alla data di decorrenza degli interessi sulla somma riconosciuta a favore degli attori e ha respinto l'azione riconvenzionale della convenuta, dandole però atto, come meglio si dirà, del suo diritto al riversamento della somma di fr. 135'000.-- depositata presso il notaio. D. La A._ AG insorge con ricorso in materia civile davanti al Tribunale federale. Chiede che, in riforma della sentenza cantonale, B._ e C._ siano condannati solidalmente a pagarle fr. 137'876.-- e che per quell'importo siano rigettate definitivamente le opposizioni ai precetti esecutivi. Gli opponenti, con risposta del 6 novembre 2019, propongono di dichiarare il ricorso "irricevibile e comunque mal fondato" e di riconoscere ri petibili commisurate al valore litigioso di fr. 173'876.-- stabilito nella sentenza impugnata. Le parti hanno inoltrato osservazioni di replica e duplica. L'autorità cantonale non ha preso posizione.